Apache的POI货币数据格式(Apache POI Currency Data Format)

2019-08-03 22:54发布

我试着将数字转换成与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元。 那也不是我想要的。

是否有可能获得这两个值是否正确?

THX和问候语

Answer 1:

最后Gagravarr了正确的技巧来解决这个问题。

最终的解决方案是:

HSSFDataFormat cf = workbook.createDataFormat();
currencyCellStyle = workbook.createCellStyle();
currencyCellStyle.setDataFormat(cf.getFormat("#,##0.00\\ _€"));

该解决方案手动创建一个Excel文件后,走了过来。 然后阅读它被Apache POI并提取格式字符串

 cell.getCellStyle().getDataFormatString() 

其结果是#,## 0.00 \ _€

所以,我在上面的代码段,这给了正确的结果使用这种格式。

谢谢



Answer 2:

手动创建的excel与所需货币格式文件后,可以在“自定义”类别(在格式细胞对话框)来获得格式字符串:于上面方法的更新。 我们不需要通过POI读取Excel中的方式来获得这个字符串。



Answer 3:

无法写入由于我的名声评论。 但是,如果你需要整数€用点每3号(例如24.000.123€)的模式是:

#,##0\ "€";\-#,##0\ "€"

所以设置格式:

cell.getCellStyle().setDataFormat(cf.getFormat("#,##0\\ \"€\";\\-#,##0\\ \"€\""));

希望这将帮助一些了。



文章来源: Apache POI Currency Data Format