Apache POI – 生成的date相应地不可sorting

使用Apache POI API,我已经能够在Excel上生成正确的整数和浮点数。 我可以validation他们是正确的,尤其是当我使用sortingfunction。

我简单地将值转换为它们各自的types,API处理剩下的部分。

但是,这种技术没有与date(我将它们转换为java.util.Date ),它们格式正确,但sorting不正确。

有什么build议么?

我尝试了两种select:

第一个: cell.setCellValue(new Date(value));

第二个: cell.setCellValue(new SimpleDateFormat("dd/MM/yyyy").format(new Date(value)));

以相反的顺序代码:

 cell.setCellValue(new SimpleDateFormat("dd/MM/yyyy").format(new Date(value))); 

不要这样做。 它将date转换为一个string,就像在Excel中进入一个单元格并键入'01/01/2010 – 在前面强制为一个string

 cell.setCellValue(new Date(value)); 

这几乎在那里。 您需要按照POI说明创builddate单元格 ,并将单元格格式化为所需date格式的date单元格

例如,对于dd/mm/yyyy ,一旦靠近文件的顶部,请执行以下操作:

 CreationHelper createHelper = wb.getCreationHelper(); CellStyle dateCellStyle = wb.createCellStyle(); dateCellStyle.setDataFormat( createHelper.createDataFormat().getFormat("dd/MM/yyyy")); 

然后为你的细胞设置+风格

 cell.setCellValue(new Date(value)); cell.setCellStyle(dateCellStyle);