2011-05-06 38 views
1

所以我使用Java的HSSF POI填充Excel文档,我使用了一些已经进入它的头文件的excel模板。 。使用java填充字段在Excel中HSSF POI - excel没有正确排序日期字段

HSSFWorkbook workbook = readFile(TEMPLATE_LOCATION); 

而我的问题是,当我在MM的日期格式填充的一列数据/ DD/YYYY这样的...

row.createCell((short)column++).setCellValue(Tools.dateToString(rfq.getCreationDate())); 

它适当填充柱像......的数据。 01/01/2011 05/04/2010用说,一个autofilter->升序排列则返回日期顺序错误,像这样03/03/2009

的错误是,当我在此列(在Excel)执行排序....

01/01/2011

03/03/2009

05/04/2010

(由于它是读取它像一个串和排序,而不是由一个日期排序)

我试图将列作为“数字”列,然后排序仍然没有骰子....

 cell = row.createCell((short)column++); 
     cell.setCellStyle(workbook.createCellStyle()); 
     cell.getCellStyle().setAlignment(HSSFCellStyle.ALIGN_RIGHT); 
     cell.setCellType(cell.CELL_TYPE_NUMERIC); 
     cell.setCellValue(Tools.dateToString(rfq.getCreationDate())); 

而且在格式化这种方式也没有帮助...

SimpleDateFormat formatter = new SimpleDateFormat("M/d/yyyy"); 
row.createCell((short)column++).setCellValue(formatter.format(order.getCreationDate())); 

这一切都在Excel 2003中进行。不知道如何解决。

回答

2

你的问题是,你将数据转换为字符串时,您填充细胞

row.createCell((short)column++).setCellValue(Tools.dateToString(rfq.getCreationDate())); 

我不是一个Java用户,所以不知道,但你可以尝试只

row.createCell((short)column++).setCellValue(rfq.getCreationDate()); 

如果底层数据是以Excel识别为日期的形式存在,则应该可以。

相关问题