你好,我正在读取CSV文件,并获取日期格式为01-01-2011,但我希望在使用Apache POI库写入.xlsx文件时将日期格式转换为01-Jan-2011。以下是我的代码:
XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("dd-MMM-yy"));
但是对我不起作用,我错在哪里?
你好,我正在读取CSV文件,并获取日期格式为01-01-2011,但我希望在使用Apache POI库写入.xlsx文件时将日期格式转换为01-Jan-2011。以下是我的代码:
XSSFDataFormat df = workBook.createDataFormat();
cs.setDataFormat(df.getFormat("dd-MMM-yy"));
但是对我不起作用,我错在哪里?
你不仅需要创建单元格格式,还需要将其应用到单元格上!
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中是小写(如上所示)。