我有一个问题。当我在 Excel 单元格中写入双精度值(例如 20.3)并指定格式(“0.0”)时,“德语”Excel 不会将该值识别为数字,因为在德国,十进制数字的分隔符是逗号,不是一点。例如,“英语”数字 1,000.00 将是 1.000,00
我尝试使用像“0,0”这样的DateFormat,但Excel仍然认为该值是一个字符串。
由于公式的原因,我需要该值是一个数字。 并且:我的软件的客户端使用德国数字格式的 Excel。没有关于它的讨论:(
有没有办法说POI以“德语”的方式写双值? 或者有什么办法可以解决这个问题吗?
非常感谢!
这应该不是问题,因为在 POI 中,
setCellValue(double)
方法被 double
覆盖,因此独立于区域设置。您似乎正在使用 setCellValue(String)
或 setCellValue(RichTextString)
。纠正它,它应该可以工作。
如果这对您不起作用,您必须发布您的代码。
用作数据格式
General
。您可以将其用于整数或双精度值。
CellStyle cellStyle = cell.getCellStyle(); cellStyle.setDataFormat(workbook.getCreationHelper().createDataFormat().getFormat("General"));
cell.setCellStyle(cellStyle);
cell.setCellValue(1.678);