我正在尝试禁用Row Pivot字段的小计,并在Apache POI(v 3.13)的帮助下,在PIVOT表的所有行中重复项目标签。 )。我找不到重复行项目标签的方法。我找到了禁用小计的方法-
setDefaultSubtotal(false)
我发现了一个link,它建议构建透视缓存,但是我听不懂。还有其他解决方法吗?
XSSFSheet pivotSheet = wb.createSheet("PIVOT");
String areaRef = "A1:R" + worksheet.getLastRowNum();
//System.out.println("AreaRef: " + areaRef);
XSSFPivotTable pivotTable = pivotSheet.createPivotTable(new AreaReference(areaRef), new CellReference("A4"),worksheet);
pivotTable.addReportFilter(0);
pivotTable.addReportFilter(2);
pivotTable.addRowLabel(1);
pivotTable.addRowLabel(3);
pivotTable.addRowLabel(4);
pivotTable.addRowLabel(5);
pivotTable.addRowLabel(6);
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 7, "Summe von Projektplanung");
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 16, "Summe von VERFÜGT");
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 17, "Summe von ÜBER-/UNTERSCHREITUNG");
pivotTable.addColumnLabel(DataConsolidateFunction.SUM, 8, "Summe von EL (EUR)");
setFormatDataField(pivotTable, 7, 3);
setFormatDataField(pivotTable, 16, 3);
setFormatDataField(pivotTable, 17, 3);
setFormatDataField(pivotTable, 8, 3);
//CTPivotField fld = pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldList().get(1);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(1).setOutline(false);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(2).setOutline(false);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(3).setOutline(false);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(4).setOutline(false);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(5).setOutline(false);
pivotTable.getCTPivotTableDefinition().getPivotFields().getPivotFieldArray(1).setDefaultSubtotal(false);