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

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

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

请记住,我正在处理数字。 单元格types将是数字,而不是string。

更新

在这里输入图像说明

只要#,####,##0就足够了。 Excel将其解释为每三位数字有数千个分隔符(不只是在最后三个数字之前,我推断出的是您所期待的)。

在这里输入图像描述

本着教男人养鱼的精神,这就是你如何find自己的:

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

在这里输入图像描述

单击确定,然后重新打开数字格式对话框并转到自定义。 看看格式化代码(“types”)。 它说#,##0 ,这给我一样的结果#,###

在这里输入图像说明

只需添加这个:

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

它会按照你想要的格式。你可以参考这个链接获得更多的格式设置。