我正在尝试将数字显示为单元格中的百分比。到目前为止,计算似乎都在起作用,但我无法将显示的数字格式化为百分比,到目前为止,我尝试了两种不同的方法。
CellValue cv = evaluator.evaluate(cell);
DecimalFormat df = new DecimalFormat("###.##%");
cell.setCellValue(df.format(Math.abs(cell.getNumericCellValue())));
这种方式基本上评估单元格,然后给它一个java decimalFormat
并使用java创建格式,并将结果放入单元格。第二种方法使用CellStyle
尝试尝试它,它看起来像这样
CellStyle stylePercent = wb.createCellStyle();
stylePercent.setDataFormat(wb.createDataFormat().getFormat("0.000%"));
然后我将值放入工作表中,然后将样式应用于单元格。
这些都不适用于我,总是将0.5的值保持为0.5而不是50%,或者甚至给它0.5%,它总是保持与没有样式的相同。
这也是我如何应用风格和我的公式。
cell.setCellFormula(""+cellValue+"/(SUM(D"+(row.getRowNum()+1)+" + F"+(row.getRowNum()+1)+" + H"+(row.getRowNum()+1)+"+ J"+(row.getRowNum()+1)+" + L"+(row.getRowNum()+1)+"+ N"+(row.getRowNum()+1)+"+ P"+(row.getRowNum()+1)+"+ R"+(row.getRowNum()+1)+"+ T"+(row.getRowNum()+1)+"+ V"+(row.getRowNum()+1)+"+ X"+(row.getRowNum()+1)+")+ Z"+(row.getRowNum()+1)+")");
cell.setCellStyle(stylePercent);