Apache poi date format

2022-09-03 13:23:15

嗨,我正在阅读csv文件并在01-01-2011中获取日期,但是当我使用apache poi库编写.xlsx文件时,我希望它以01-Jan-2011格式。我的代码是

XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("dd-MMM-yy"));

但它对我不起作用。我在哪里做错。


答案 1

您不仅需要创建单元格格式,还需要将其应用于单元格!

XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("d-mmm-yy"));

// Get / Create our cell
XSSFRow row = sheet.createRow(2);
XSSFCell cell = row.createCell(3);

// Set it to be a date
Calendar c = Calendar.getInstance();
c.set(2012,3-1,18); // Don't forget months are 0 based on Calendar
cell.setCellValue( c.getTime() );

// Style it as a date
cell.setCellStyle(cs);

其次,您需要注意,Java和Excel在表达日期格式规则的方式上略有不同。您应该打开Excel的副本,按照所需的格式设置示例单元格的格式,然后记下所需的格式规则。在你的例子中,你选择了Java风格的大写字母M,而在Excel中,它是小写的(见上文)


答案 2

推荐