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来获取这个字符串了。