Java Apache POI 在单元格中写入双精度值(德语 Excel)

问题描述 投票:0回答:2

我有一个问题。当我在 Excel 单元格中写入双精度值(例如 20.3)并指定格式(“0.0”)时,“德语”Excel 不会将该值识别为数字,因为在德国,十进制数字的分隔符是逗号,不是一点。例如,“英语”数字 1,000.00 将是 1.000,00

我尝试使用像“0,0”这样的DateFormat,但Excel仍然认为该值是一个字符串。

由于公式的原因,我需要该值是一个数字。 并且:我的软件的客户端使用德国数字格式的 Excel。没有关于它的讨论:(

有没有办法说POI以“德语”的方式写双值? 或者有什么办法可以解决这个问题吗?

非常感谢!

java format apache-poi separator
2个回答
1
投票

这应该不是问题,因为在 POI 中,

setCellValue(double)
方法被
double
覆盖,因此独立于区域设置。您似乎正在使用
setCellValue(String)
setCellValue(RichTextString)
。纠正它,它应该可以工作。

如果这对您不起作用,您必须发布您的代码。


0
投票

用作数据格式

General
。您可以将其用于整数或双精度值。

CellStyle cellStyle = cell.getCellStyle();          cellStyle.setDataFormat(workbook.getCreationHelper().createDataFormat().getFormat("General"));
cell.setCellStyle(cellStyle);
cell.setCellValue(1.678);
© www.soinside.com 2019 - 2024. All rights reserved.