【问题标题】:Apache poi date formatApache poi 日期格式
【发布时间】:2012-04-03 03:30:23
【问题描述】:

您好,我正在读取 csv 文件并获取 2011 年 1 月 1 日的日期,但是当我使用 apache poi 库编写 .xlsx 文件时,我希望它采用 2011 年 1 月 1 日的格式。我的代码是

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

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

【问题讨论】:

  • 对不起,cs是什么?
  • @Leo 这是一个 XSSFCellStyle

标签: java apache-poi


【解决方案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 中则是小写(见上文)

【讨论】:

猜你喜欢
  • 2012-12-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-14
  • 1970-01-01
  • 2018-10-18
  • 1970-01-01
相关资源
最近更新 更多