我试着将数字转换成与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和问候语
最后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中的方式来获得这个字符串。
无法写入由于我的名声评论。 但是,如果你需要整数€用点每3号(例如24.000.123€)的模式是:
#,##0\ "€";\-#,##0\ "€"
所以设置格式:
cell.getCellStyle().setDataFormat(cf.getFormat("#,##0\\ \"€\";\\-#,##0\\ \"€\""));
希望这将帮助一些了。