POI – date格式dd-mmm-yy未被识别为Excel格式
我使用POI-3.10.1和Java 1.5来生成包含格式为的date字段的excel文件
dd-mmm-yy
。
例如:2015年11月24日
这是示例代码:
Workbook wb = new SXSSFWorkbook(); SXSSFSheet sheet = (SXSSFSheet) wb.createSheet(sheetName); // Create date formatter CellStyle dateCellStyle = wb.createCellStyle(); DataFormat dataFormat = wb.createDataFormat(); short format = dataFormat.getFormat("dd-mmm-yy"); dateCellStyle.setDataFormat(format); Row row = sheet.createRow(rowIndex); Cell dateCell = row.createCell(columnIndex); dateCell.setCellValue(dataValue); dateCell.setCellStyle(dateCellStyle);
问题是这样的,当我打开并在Windows中生成的Excel文件中selectdate字段时,单元格的格式显示为Custom
。
以下是在Windows中重新创build/解决问题的步骤:
- select一个date单元格
- 右键单击单元格,然后select
Format Cells...
选项
- 打开的窗口中,单元格的types被选为“自定义” ,即使date格式下有匹配types
真的很感激,如果任何人可以给/显示方向或解决scheme,以显示Date
字段样式下这个dd-mmm-yy
格式的date。
尝试:
short format = dataFormat.getFormat(DateFormatConverter.convert(Locale.ENGLISH, "dd-MMM-yy"));
只是看我的代码类似的东西,我做了一阵子,我创builddate单元格为数字types。 从我记得这是Excel如何表示内部date(有一个date格式,但没有date“types”)。
从createCell的文档 :
返回的单元格是
Cell.CELL_TYPE_BLANK
。 types可以通过调用setCellValue
或setCellType
来改变。
您还可以使用以下命令创build数字单元格:
Cell dateCell = row.createCell(columnIndex, Cell.CELL_TYPE_NUMERIC);