使用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"));
它会按照你想要的格式。你可以参考这个链接获得更多的格式设置。