背景:
我需要导出一个电子表格文档,其中一列包含日期格式的数据。
我目前正在设置工作簿样式,如下所示:
...
dateTimeStyle = workbook.createCellStyle();
//dateTimeStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("m/d/yy h:mm"));
dateTimeStyle.setDataFormat((short)0x16);
...
并将数据插入单元格/设置单元格的格式,如下所示:
...
if (Date.class.isAssignableFrom(o.getClass())) {
Calendar cal = Calendar.getInstance();
cal.setTime((Date) o);
cell.setCellStyle(dateTimeStyle);
cell.setCellValue(cal);
}
...
注意:根据BuiltinFormats 文档(http://poi.apache.org/apidocs/org/apache/poi/ss/usermodel/BuiltinFormats.html),0x16是指我想要实现的日期格式。
我遇到的问题是,当我在 Microsoft Office Excel 2007 中打开导出的文档时,当我右键单击单元格并选择设置单元格格式...时,它会将所选单元格显示为自定义格式为 dd/mm/yyyy hh:毫米
此外,VLOOKUP 操作在列上不起作用(我承认,我可能做错了):
我有一种感觉,这是由于对 Excel 如何存储和格式化内容的方式存在误解,我希望能提供任何帮助。
问题:
那么,如何正确格式化/填充单元格,以便 Microsoft Excel 将其视为日期并且 VLOOKUP 工作等?
更新:如果我在 Open Office Calc 中打开生成的文件并选择格式化单元格...格式正确显示为日期。那么,开始怀疑这是否是 POI 库和 Excel 2007 的问题......
非常感谢。