7
例如在Excel细胞两个小数点,始终显示使用Apache POI
XSSFCellStyle style=(XSSFCellStyle) workbook.createCellStyle();
style.setDataFormat(workbook.createDataFormat().getFormat("#.##"));
productCell.setCellValue(12.4);
productCell.setCellType(Cell.CELL_TYPE_NUMERIC);
productCell.setCellStyle(style);
这将显示在12.4
指定单元格。它应该是12.40
。值12
显示为12.
,这是非常不必要的。
如果值为0
那么它会显示一个点.
。它应该始终显示两位十进制数字 - 0.00
,在这种情况下,不管存储在单元中的值如何。
如何强制excel始终在数字单元格中显示两位十进制数字?
我使用下列样式之一来显示数字单元格。
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);
我施加一些Excel公式对被预期施加的数字格式后进行数字单元执行一些计算(舍入半向上)上的数字的细胞。
你试过这个http://stackoverflow.com/questions/9789627/write-double-value-in-numeric-cell-with-specific-format-in-apache-poi-3-7? – 2014-09-24 15:23:57
是的,其行为与问题中提到的完全相同。 – Tiny 2014-09-24 15:30:59
如果您在Excel中格式化单元格,您需要使用什么单元格样式才能使其看起来如何? – Gagravarr 2014-09-24 16:34:09