Apache POI货币数据格式
我尝试使用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。 那也不是我想要的。
有可能让两个值都正确吗?
感谢和问候
最后,Gagravarr给出了解决这个问题的正确提示。
最终的解决方案是:
HSSFDataFormat cf = workbook.createDataFormat(); currencyCellStyle = workbook.createCellStyle(); currencyCellStyle.setDataFormat(cf.getFormat("#,##0.00\\ _€"));
手动创建excel文件后出现了解决方案。 然后通过Apache Poi读取它并使用提取格式字符串
cell.getCellStyle().getDataFormatString()
结果是#,## 0.00 \ _€
所以我在上面的代码片段中使用了这种格式,它给出了正确的结果。
谢谢
上述方法的更新:手动创建具有所需货币格式的excel文件后,可以在“自定义”类别下(在“单元格格式”对话框中)获取格式字符串。 这样我们就不需要通过poi读取excel来获取这个字符串了。