设置单元格样式以使数字显示为Apache POI的百分比

时间:2015-07-06 14:28:39

标签: java excel apache-poi

我正在尝试将数字显示为单元格中的百分比。到目前为止,计算似乎都在起作用,但我无法将显示的数字格式化为百分比,到目前为止,我尝试了两种不同的方法。

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

0 个答案:

没有答案