我正在使用Apache POI 3.9并使用SXSSF创建一个大型excel文件(.xlsx),在该excel文件中,我有1个日期列,我想格式化,但它不起作用 .

旧代码(POI 3.7):

HSSFCellStyle dateStyle = wb.createCellStyle();
dateStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("d-mmm-yy"));

新代码(POI 3.9):

CellStyle dateStyle = wb.createCellStyle();
dateStyle.setDataFormat((short)BuiltinFormats.getBuiltinFormat("d-mmm-yy"));

所以代码非常相似,只是我现在使用SXSSFWorkbook和Sheet和Cell而不是HSSF对象 .

这是输出:

旧:

20-Feb-13

新:

Feb 20, 13

如您所见,日期格式错误 .

任何帮助,将不胜感激 .

新代码中的额外代码段:

SXSSFWorkbook wb = new SXSSFWorkbook(100);
wb.setCompressTempFiles(true);

CreationHelper helper = wb.getCreationHelper();
Cell cell = row.createCell(y);
cell.setCellValue( (java.util.Date)rows1[x][y] );
cell.setCellStyle(dateStyle);