2012-10-29 27 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")); 
相关问题