因此,我正在使用 Java 的 HSSF POI 填充一个 excel 文档,并且我正在使用一个 excel 模板,该模板已经像这样输入了一些标题......
HSSFWorkbook workbook = readFile(TEMPLATE_LOCATION);
我的问题是,当我用 MM/dd/yyyy 日期格式的数据填充其中一列时,就像这样......
row.createCell((short)column++).setCellValue(Tools.dateToString(rfq.getCreationDate()));
它用类似的数据适当地填充列...... 01/01/2011 05/04/2010 03/03/2009
错误是当我使用自动过滤器->升序对该列(在excel中)执行排序时,它会以错误的顺序返回日期,如下所示......
2011 年 1 月 1 日
2009 年 3 月 3 日
2010 年 5 月 4 日
(因为它像字符串一样读取它并排序而不是按日期排序)
我试图将该列设置为“数字”列,然后排序仍然没有骰子....
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 中。不知道如何解决。