首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache POI货币数据格式

Apache POI货币数据格式
EN

Stack Overflow用户
提问于 2012-12-12 19:14:38
回答 3查看 16.3K关注 0票数 6

我尝试使用Apache POI将数字转换为欧洲货币样式

代码语言:javascript
复制
HSSFDataFormat cf = workbook.createDataFormat();
currencyCellStyle = workbook.createCellStyle();
currencyCellStyle.setDataFormat(cf.getFormat("#.###,#0"));

例如,我有数字2400和2.4

我要的是2400,00和2,40。但是POI给了我2400,0和2,40。当我尝试将其更改为

代码语言:javascript
复制
currencyCellStyle.setDataFormat(cf.getFormat("#.###,00"));

我得到了2400,00和2400。这也不是我想要的。

有没有可能让两个值都正确?

Thx和问候

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2012-12-18 21:39:57

最后,Gagravarr给出了解决这个问题的正确提示。

最终的解决方案是:

代码语言:javascript
复制
HSSFDataFormat cf = workbook.createDataFormat();
currencyCellStyle = workbook.createCellStyle();
currencyCellStyle.setDataFormat(cf.getFormat("#,##0.00\\ _€"));

解决方案是在手动创建excel文件后出现的。然后用Apache Poi读入并提取格式字符串

代码语言:javascript
复制
 cell.getCellStyle().getDataFormatString() 

结果是#,##0.00\ _€

因此,我在上面的代码片段中使用了这种格式,它给出了正确的结果。

Thx

票数 13
EN

Stack Overflow用户

发布于 2013-08-20 17:27:30

对上述方法的更新:手动创建具有所需货币格式的excel文件后,可以在“自定义”类别下(在“格式单元格”对话框中)获取格式字符串。这样我们就不需要通过poi读取excel来获得这个字符串。

票数 3
EN

Stack Overflow用户

发布于 2019-05-09 21:37:03

由于我的名声,我不能写评论。但是,如果您需要每个第三个数字都带有点的整数欧元(例如24.000.123欧元),则模式为:

代码语言:javascript
复制
#,##0\ "€";\-#,##0\ "€"

所以设置格式:

代码语言:javascript
复制
cell.getCellStyle().setDataFormat(cf.getFormat("#,##0\\ \"€\";\\-#,##0\\ \"€\""));

希望这能对你有所帮助。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13838495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档