我有问题。我使用的是Apache POI 3.8,我需要将日期设置为Excel单元格。但我不明白 - 如何根据用户区域设置日期。因为美国格式的日期是月/日/年,在俄语区域 - 日/年/月。我正在为我的任务使用下一个代码
CellStyle dateStyle = workbook.createCellStyle();
dateStyle.setDataFormat(dataFormat.getFormat("m/d/yy"));
cell.setCellStyle(dateStyle);
如果有人知道 - 如何根据用户区域设置单元格日期值,请回答。 注意。如果我使用“m / d / yy h:mm”,那么我在Excel文件中看不到我的日期(我在单元格中只看到“######”字符串)。 谢谢。
答案 0 :(得分:3)
尝试并展开细胞。有时,如果单元格宽度太短######
被视为输出。要获得本地化模式,您可以看到此reference
答案 1 :(得分:2)
Excel根据打开文档的计算机的区域设置显示日期和数字。所以你不需要关心它。
在您的代码中使用模式“m / d / yy”。 Excel会自动将其转换为“de_DE”语言环境中的“dd.MM.yyyy”,“en_GB”语言环境中的“dd / MM / yyyy”等等。
您可以测试它更改机器的区域设置(适用于Windows: 控制面板 - >时钟,语言和区域 - >语言 - >更改日期,时间或数字)。正如您将看到的,对于不同的区域设置,同一Excel文档将以不同方式显示。
关于“######”,您可以使用Neo4J。但要小心,因为正如文档中所描述的那样:
“这个过程在大型纸张上可能相对较慢,所以这应该 通常每列只调用一次,在你的结尾 处理“
答案 2 :(得分:0)
可以在formatListener
上设置区域设置MissingRecordAwareHSSFListener listener = new MissingRecordAwareHSSFListener(this);
formatListener = new FormatTrackingHSSFListener(listener, Locale.UK);