POI - 日期格式dd-mmm-yy无法识别为Excel格式

时间:2015-11-24 09:18:38

标签: java excel apache-poi

我使用POI-3.10.1和Java 1.5生成excel文件,其中包含格式为
的日期字段 dd-mmm-yy

  

例如:24-Nov-15

这是示例代码:

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文件中选择日期字段时,单元格的格式显示为Custom

以下是在Windows中重新创建/获取问题的步骤:

  1. 选择日期单元格
  2. enter image description here

    1. 右键单击该单元格,然后选择Format Cells...选项
    2. enter image description here

      1. 打开的窗口,单元格的类型被选为自定义,即使日期格式下存在匹配类型 enter image description here
      2. 非常感谢任何人可以提供/显示路线或解决方案,以便在dd-mmm-yy字段样式下显示此Date格式的日期。

2 个答案:

答案 0 :(得分:2)

尝试:

short format = dataFormat.getFormat(DateFormatConverter.convert(Locale.ENGLISH, "dd-MMM-yy"));

答案 1 :(得分:0)

只是查看我的代码,我做了一些类似的事情,我正在创建日期单元格作为数字类型。从我记得这是Excel如何在内部表示日期(有日期格式,但没有日期“类型”)。

来自documentation for createCell

  

返回的单元格是Cell.CELL_TYPE_BLANK。类型可以   通过调用setCellValuesetCellType来更改。

您还可以使用以下方式创建数字单元格:

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