2012-10-29 54 views
0

當我通過java創建excel表時,oracle表中有number數據類型的列,在excel中轉​​換爲text格式。我希望它保留在number格式中。以下是我創建excel的代碼片段。如何在通過java創建的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")); 
相關問題