poi 默认2位小数_总是使用Apache poi在excel单元格中显示两个小数点

For example,

XSSFCellStyle style=(XSSFCellStyle) workbook.createCellStyle();

style.setDataFormat(workbook.createDataFormat().getFormat("#.##"));

productCell.setCellValue(12.4);

productCell.setCellType(Cell.CELL_TYPE_NUMERIC);

productCell.setCellStyle(style);

This displays 12.4 in the specified cell. It should be 12.40. The value 12 is displayed as 12. which is quite unnecessary.

If the value is 0 then, it displays a dot .. It should always display two decimal digits - 0.00, in this case regardless of the value being stored in a cell.

How to force excel to always show two decimal digits in a numeric cell?

I use one of the following styles to display numeric cells.

XSSFColor commonColor = new XSSFColor(new java.awt.Color(240, 240, 240));

XSSFColor cellBorderColour = new XSSFColor(new java.awt.Color(0, 76, 153));

Font font = workbook.createFont();

font.setBoldweight(Font.BOLDWEIGHT_BOLD);

font.setColor(IndexedColors.DARK_BLUE.index);

XSSFCellStyle style = (XSSFCellStyle) workbook.createCellStyle();

style.setFillForegroundColor(commonColor);

style.setFillPattern(CellStyle.SOLID_FOREGROUND);

style.setAlignment(CellStyle.ALIGN_RIGHT);

style.setFont(font);

style.setBorderLeft(BorderStyle.HAIR);

style.setBorderColor(XSSFCellBorder.BorderSide.LEFT, cellBorderColour);

style.setBorderTop(BorderStyle.HAIR);

style.setBorderColor(XSSFCellBorder.BorderSide.TOP, cellBorderColour);

style.setBorderRight(BorderStyle.HAIR);

style.setBorderColor(XSSFCellBorder.BorderSide.RIGHT, cellBorderColour);

style.setBorderBottom(BorderStyle.DOUBLE);

style.setBottomBorderColor(cellBorderColour);

I applied some excel formulae to perform some calculations on numeric cells that are expected to be performed after applying a number format (rounding half up) on numeric cells.

解决方案

In Excel formatting, a # means "place a digit here only if needed", but a 0 means "always place a digit here, even if it's an unnecessary 0". You can specify the data format in Apache POI exactly as you would in Excel itself. If you want the 0 digits to show up, then you need to use 0s as formatting digits. Try

style.setDataFormat(workbook.createDataFormat().getFormat("0.00"));

This will make the value 0 show up as 0.00 and 12.4 as 12.40.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值