2012-10-29 1 views
0

자바를 통해 Excel 시트를 만들 때, 오라클 테이블에 number 데이터 유형을 가진 열이 text 형식으로 변환됩니다. number 형식으로 유지하고 싶습니다. 아래 코드는 Excel 작성을위한 코드입니다.자바를 통해 생성 된 Excel 시트에 정수 값을 설정하는 방법은 무엇입니까?

public boolean prepareExcelFilefromQuery(String chanType, 
        Collection<List> queryDataRowWise, HttpServletResponse response) 

      { 
       List<String> queryDataColWise; 
       HSSFRow row = null; 
       HSSFCell cell = null; 
       Integer rowCounter = 0; 
       Integer colCounter; 
       boolean success = false; 
       try { 

        Iterator<List> rowIterator = queryDataRowWise.iterator(); 
        HSSFWorkbook workbook = new HSSFWorkbook(); 
        HSSFSheet sheet = workbook.createSheet(chanType + " Report"); 
        System.out.println("First row/..." + sheet.getFirstRowNum()); 
        while (rowIterator.hasNext()) { 
         colCounter = 0; 

         queryDataColWise = (List) rowIterator.next(); 
         Iterator colIterator = queryDataColWise.iterator(); 

         row = sheet.createRow(rowCounter++); 
         while (colIterator.hasNext()) { 
          cell = row.createCell(colCounter++); 
          Object o = colIterator.next(); 

          if (o instanceof java.lang.String) { 
           String s = (String) o; 
           cell.setCellValue(s); 
          } else if (o instanceof java.lang.Double) { 
           Double d = (Double) o; 
           cell.setCellValue(d); 
          } else if (o instanceof java.lang.Integer) { 
           Integer i = (Integer) o; 
           cell.setCellType(cell.CELL_TYPE_NUMERIC); 
           cell.setCellValue(i); 
          } else if (o instanceof java.util.Date) { 
           Date date = (Date) o; 

           SimpleDateFormat FORMATTER; 

           FORMATTER = new SimpleDateFormat("MM/dd/yyyy"); 
           String date11 = FORMATTER.format(date); 
           HSSFCellStyle cellStyle = workbook.createCellStyle(); 
           cellStyle.setDataFormat(HSSFDataFormat 
             .getBuiltinFormat("m/d/yy")); 
           cell.setCellStyle(cellStyle); 
           cell.setCellValue(FORMATTER.parse(date11)); 
          } 
         } 
        } 

        workbook.write(response.getOutputStream()); 
        success = true; 

       } catch (Exception e) { 
        logger.debug(
          "Exception caught in prepareExcelFilefromQuery class ", e); 
        System.out 
          .println("Exception caught in prepareExcelFilefromQuery class "); 
        e.printStackTrace(); 

       } 
       } 
       return success; 
      } 
+0

이들은 Java 표준 라이브러리 클래스가 아닙니다. javadoc 또는 라이브러리를 가리키면 답변을 얻을 수있는 기회가 늘어납니다. – ignis

답변

1

과 같은 형식 만 사용하면됩니다. More Format

CellStyle numberStyle = wb.createCellStyle(); 
numberStyle.setDataFormat(format.getFormat("0")); 

CellStyle dateStyle = wb.createCellStyle(); 
dateStyle.setDataFormat(format.getFormat("d-mmm-yy"));