使用Apache POI API,我已经能够在Excel上生成正确的整数和浮点数。我可以验证它们是否正确,尤其是在我使用Sort函数时。
我只是将值转换为各自的类型,API负责其余的工作。
但是,这种技术不适用于日期(我将它们转换为java.util.Date
),它们格式正确,但排序不准确。
有什么建议吗?
我尝试了两种选择:
第一个:cell.setCellValue(new Date(value));
第二个:cell.setCellValue(new SimpleDateFormat("dd/MM/yyyy").format(new Date(value)));
答案 0 :(得分:2)
以相反的顺序执行代码:
cell.setCellValue(new SimpleDateFormat("dd/MM/yyyy").format(new Date(value)));
不要这样做。它将日期转换为字符串,就像在Excel中进入单元格并键入'01/01/2010
一样 - 前面的'
强制转换为字符串
cell.setCellValue(new Date(value));
这几乎就在那里。您需要遵循POI instructions on creating a date cell,并将单元格格式化为所需日期格式的日期单元格
例如对于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);