使用相同的列索引计算数据透视表中的列

时间:2016-08-02 20:41:46

标签: java apache-poi pivot-table

我在线搜索了很多,但无法找到错误的解决方案。

代码

        AreaReference areaRef = new AreaReference("A1:T"+ sheet.getLastRowNum());
        CellReference cellRef = new CellReference("A2");
        XSSFPivotTable pivotTable = summarysheet.createPivotTable(areaRef,cellRef,sheet);
        pivotTable.addRowLabel(19);
        pivotTable.addColumnLabel(DataConsolidateFunction.COUNT, 19);

问题:我正在尝试在索引19上添加RowLabel并尝试计算第19列。

运行后,显示文件已损坏的错误。但是当我在addColumnLabel中更改索引时。有用。

任何建议或建议都将受到高度赞赏。

1 个答案:

答案 0 :(得分:1)

所以这里的问题是当你将行标签设置为列19时,它不会将其设置为数据字段,并且当你对同一列进行计数时它会失败,快速解决方法是将该特定列设置为不仅作为axisRow,但也作为数据字段

pivotTable.addColumnLabel(DataConsolidateFunction.COUNT, 19);
pivotTable.addRowLabel(19);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(19).setDataField(true);

试一试!!!