Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 设置单元格样式,使数字显示为Apache POI的百分比_Java_Excel_Apache Poi - Fatal编程技术网

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

Java 设置单元格样式,使数字显示为Apache POI的百分比,java,excel,apache-poi,Java,Excel,Apache Poi,我正试图让我的单元格中的数字显示为百分比。到目前为止,计算似乎都在进行,但我无法将显示的数字格式化为百分比。到目前为止,我尝试了两种不同的方法 CellValue cv = evaluator.evaluate(cell); DecimalFormat df = new DecimalFormat("###.##%"); cell.setCellValue(df.format(Math.abs(cell.getNume

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

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

也许你应该看看这里:这和我的第二种方法是一样的。我将尝试更改当前设置单元格值的位置,我将在设置样式之前进行更改,但我将更改它,然后看看会发生什么。单元格样式不是魔术,您需要将它们指定给单元格才能使其工作!