Java Poi XSSF - 创建具有多个可扩展列的数据透视表

问题描述 投票:0回答:2

我有大约 1000 行和多列,我想用它们创建一个数据透视表。

我的实际结果是: enter image description here

但是我想要一个数据透视表,如下所示: enter image description here

我当前的代码:

// ... 
// fill sheet with data 
// ...

// create Pivot table
int firstRow = sheet.getFirstRowNum() + firstDataRow;
int lastRow = sheet.getLastRowNum();
int firstCol = sheet.getRow(0).getFirstCellNum();
int lastCol = sheet.getRow(firstRow).getLastCellNum();

CellReference topLeft = new CellReference(firstRow, firstCol);
CellReference botRight = new CellReference(lastRow, lastCol-1);

XSSFPivotTable pivotTable = pivotSheet.createPivotTable(
        new AreaReference(topLeft, botRight), new CellReference(firstRow, lastCol), sheet);

pivotTable.addRowLabel(lastCol - 1); // month
pivotTable.addRowLabel(6); // car
pivotTable.addRowLabel(lastCol - 2); // state
pivotTable.addColumnLabel(DataConsolidateFunction.COUNT, 0, 
        resourceBundle.getString("Count"));

我什至不知道如何命名不同的结果。 我认为我需要更深入地研究 poi 主题来生成更复杂的数据透视表,但我不知道如何做。

有人可以帮我解决这个问题吗?

java excel apache-poi xssf
2个回答
0
投票

找到解决方案:

CTPivotFields pFields = pivotTable.getCTPivotTableDefinition().getPivotFields();
            pFields.getPivotFieldArray(lastCol - 1).setOutline(false);
            pFields.getPivotFieldArray(6).setOutline(false);
            pFields.getPivotFieldArray(lastCol - 2).setOutline(false);

0
投票

如何在数据透视表中添加多列? “addColLabel”不起作用,添加列时出现错误

© www.soinside.com 2019 - 2024. All rights reserved.