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/解决问题的步骤:

  1. select一个date单元格

在这里输入图像说明

  1. 右键单击单元格,然后selectFormat Cells...选项

在这里输入图像说明

  1. 打开的窗口中,单元格的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可以通过调用setCellValuesetCellType来改变。

您还可以使用以下命令创build数字单元格:

 Cell dateCell = row.createCell(columnIndex, Cell.CELL_TYPE_NUMERIC);