我使用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中重新创建/获取问题的步骤:
答案 0 :(得分:2)
尝试:
short format = dataFormat.getFormat(DateFormatConverter.convert(Locale.ENGLISH, "dd-MMM-yy"));
答案 1 :(得分:0)
只是查看我的代码,我做了一些类似的事情,我正在创建日期单元格作为数字类型。从我记得这是Excel如何在内部表示日期(有日期格式,但没有日期“类型”)。
来自documentation for createCell:
返回的单元格是
Cell.CELL_TYPE_BLANK
。类型可以 通过调用setCellValue
或setCellType
来更改。
您还可以使用以下方式创建数字单元格:
Cell dateCell = row.createCell(columnIndex, Cell.CELL_TYPE_NUMERIC);