0
BigDecimal myNumber = new BigDecimal(1234.56);
NumberFormat instance = NumberFormat.getInstance(Locale.GERMAN);
String localizedNumber = instance.format(myNumber);
System.out.print("\nformatting " + localizedNumber); o/p ->1.234,56

直到这里代码工作正常,但下面的行给出了 NumberFormatter 异常,因为给定的字符串中包含逗号。

BigDecimal bigDecimal = new BigDecimal(localizedNumber);

我希望将数值本地化,但我无法返回字符串,因为将数字作为字符串显示在 excel 中的错误下方 此单元格中的数字是格式化为文本或前面有撇号

有什么方法可以以本地化格式返回数值(BigDecimal / Integer / BigInteger 等),这样我就不会在 excel 中出现上述错误,并且可以对 excel 数据执行过滤操作。

我也试过 new BigDecimalType().valueToString(value, locale); 和 new BigDecimalType().stringToValue(s, locale); 动态jasper报告api。

4

1 回答 1

2

很高兴回答这个问题,这个问题只问我,很惊讶没有人回答这个问题。实际上,我们不必为 excel 导出中的数字本地化做任何事情,因为它是由我们的操作系统设置自动完成的。

转到“地区和语言”-> 格式-> 选择语言/国家名称-> 应用并检查您之前用英语生成的 Excel。

您将看到当前所选国家/地区数字格式的数字。:)

于 2014-11-05T04:18:07.567 回答