使用Apache POI在Excel中使用千位分隔符格式化数字

时间:2014-12-10 12:18:19

标签: java excel formatting apache-poi

我想格式化一些数字单元格,逗号为千位分隔符。例如:

12        -> 12
1200      -> 1,200
12000     -> 12,000
12000000  -> 12,000,000
120000000 -> 120,000,000

我有以下代码。我应该将formatStr用作什么?有一个简单的方法吗?或者我是否必须检测零的数量才能产生类似#,###,###的内容?

String formatStr = "";
HSSFCellStyle style = workbook.createCellStyle();
HSSFDataFormat format = workbook.createDataFormat();
style.setDataFormat(format.getFormat(formatStr));
cell.setCellStyle(style);
cell.setCellType(HSSFCell.CELL_TYPE_NUMERIC);

请记住,我正在处理数字。单元格类型将是数字,而不是字符串。

更新

enter image description here

2 个答案:

答案 0 :(得分:8)

只需添加:

style.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0.00"));

它将遵循您想要的格式。您可以参考this link获取更多格式设置。

答案 1 :(得分:7)

只需#,####,##0即可。 Excel将其解释为每三个数字有数千个分隔符(不仅仅是在最后三个数字之前,我推断它是你所期望的)。

enter image description here

本着教人钓鱼的精神,这就是你如何找到自己的方法:

格式为数字,0位小数,1000分隔符:

enter image description here

单击“确定”,然后重新打开数字格式对话框并转到“自定义”。看一下格式化代码(" Type")。它显示#,##0,对我来说,它给出与#,###完全相同的结果。

enter image description here