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"));