0

我必须用 POI-3.2-Final 创建一个 excel 文件(不能升级到 3.5+,因为复古兼容性问题)并且对于每一行,我必须在 col A 中格式化一个日期。

根据方法名称,我认为这样做的方法是:

short dateFormat = workbook.createDataFormat().getFormat("dd/MM/yyyy HH:mm");
...
cell = row.createCell(0);
cell.setCellValue(new Date());
cell.getCellStyle().setDataFormat(dateFormat);

但是,实际上有趣的是,它将这种样式应用于所有单元格。

所以,请记住我不能切换 API(没有升级,没有 csv,没有 jexcel),有没有办法实现我想要的?

谢谢

4

1 回答 1

1

您的问题是您正在更改默认的 cellStyle!
cell.getCellStyle()为您提供当前在该单元格上设置的样式,如果您尚未更改它,这通常是默认样式。
为了使这项工作如您所愿,您必须从您的 dateFormat 创建一个新的 CellStyle 对象,并将其设置为这样的单元格:

dateStyle = workbook.createCellStyle();
...
dateStyle.setDataFormat(dateFormat);
cell.setCellStyle(dateStyle);

还要确保您只创建一次该样式对象,并将其重用于您想要具有该样式的所有单元格。

于 2010-03-25T11:16:31.030 回答