Java 使用ApachePOI在Excel中使用千位分隔符格式化数字
我想格式化一些数字单元格,用逗号作为分隔符。例如:Java 使用ApachePOI在Excel中使用千位分隔符格式化数字,java,excel,formatting,apache-poi,Java,Excel,Formatting,Apache Poi,我想格式化一些数字单元格,用逗号作为分隔符。例如: 12 -> 12 1200 -> 1,200 12000 -> 12,000 12000000 -> 12,000,000 120000000 -> 120,000,000 我有以下代码。我应该使用什么作为格式str?有简单的方法吗?或者我必须检测零的数量才能产生像这样的东西,######### 请记住,我是在处理数字。单元格类型将是数字,而不是字符串 更新 只要,###或,##
12 -> 12
1200 -> 1,200
12000 -> 12,000
12000000 -> 12,000,000
120000000 -> 120,000,000
我有以下代码。我应该使用什么作为格式str
?有简单的方法吗?或者我必须检测零的数量才能产生像这样的东西,#########
请记住,我是在处理数字。单元格类型将是数字,而不是字符串
更新
只要,###
或,##0
就足够了。Excel将其解释为每三位有数千个分隔符(不只是在最后三位之前,我推断这是您所期望的)
本着教人钓鱼的精神,这是你自己可以发现的:
格式为数字,小数点后0位,带1000分隔符:
单击“确定”,然后重新打开“数字格式”对话框并转到“自定义”。看看格式化代码(“类型”)。它说的是,##0
,对我来说,它给出了与,##
完全相同的结果
只需添加以下内容:
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));
它将遵循您想要的格式。您可以参考获取更多格式设置 这正是我想要的,但是当我在excel中尝试这个时,我得到了
1200,
。即使我尝试了你的数字示例,同样的行为仍然存在(这很奇怪)。我将在我的java代码中尝试它,然后回来。请查看我的更新以获取屏幕截图(我可能做错了什么)。刚投了赞成票,很奇怪。Excel区域设置?。。。看看我的扩展答案。这能让你更接近吗?好吧,现在我明白了。第二部分为我解决了这个问题,因为我用“千分位”关键字搜索,结果出现了这个问题。当然可以。请不要认为我懒惰,我搜索了一个已有的答案,但显然没有使用正确的关键字。我如何在.xlxs文件中使用它?
style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));