【发布时间】:2019-05-09 21:57:27
【问题描述】:
我尝试使用 Apache POI 将数字转换为欧洲货币样式
HSSFDataFormat cf = workbook.createDataFormat();
currencyCellStyle = workbook.createCellStyle();
currencyCellStyle.setDataFormat(cf.getFormat("#.###,#0"));
我有例如数字 2400 和 2.4
我想要的是 2400,00 和 2,40 。 但是 POI 给了我 2400,0 和 2,40。 当我尝试将其更改为
currencyCellStyle.setDataFormat(cf.getFormat("#.###,00"));
我得到的结果是 2400,00 和 2,400。 这也不是我想要的。
是否有可能使两个值都正确?
谢谢和问候
【问题讨论】:
-
我认为您需要将格式字符串设置为 US/UK 样式,然后在欧洲区域设置的 Excel 副本中打开文件,它会按您的预期呈现。你试过了吗?
-
感谢部分工作。使用 "#,###.#0" 时,逗号和点设置为欧洲风格,在 excel 中打开时更改为 2.400,0 。但我在逗号后只得到一个零。输入数字是2400。
-
如果你在 Excel 中创建一个新文件,按照你想要的样式设置它,然后在 Apache POI 中加载它并读取格式字符串,你会看到什么?
-
完美。我创建了一个 excel 文件并将单元格的样式设置为 2 位数的货币。然后我用 apache poi 读取文件并用 cell.getCellStyle().getDataFormatString() 读取单元格样式,它返回 '#,##0.00\ _€' 所以我将此格式添加为我的格式字符串。因此,我有 cf.getFormat("#,##0.00\\ _€") 并且效果很好。从未在其他地方见过这种带有欧元符号和下划线的格式。
-
最好把它添加为答案,这样大家都知道它已经解决了!
标签: java apache-poi