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

2022-09-04 19:52:41

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

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


答案 1

只需添加以下内容:

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

它将遵循您想要的格式。


答案 2

只是或应该足够了。Excel将其解释为每三位数字具有数千个分隔符(不仅仅是在最后三位之前,我推断这是您所期望的)。#,####,##0

enter image description here

本着教人以鱼的精神,这是你如何自己找到:

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

enter image description here

点按“好”,然后重新打开数字格式对话框并转至“自定”。查看格式代码(“类型”)。它说,对我来说,这给出了与 完全相同的结果。#,##0#,###

enter image description here


推荐