Повторите метки элементов и отключите промежуточные итоги в сводной таблице - Apache POI - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь отключить промежуточные итоги полей Сводки строк, а также , повторяя метки элементов во всех строках таблицы PIVOT с помощью Apache POI (v 3.13). Я не мог найти способ для повторения меток элементов строки. Я нашел способ отключить промежуточные итоги, хотя -

setDefaultSubtotal (ложь)

Но это дает мне следующую ошибку. enter image description here enter image description here

Я нашел ссылку , в которой предлагается создать сводный кэш, но я не могу этого понять. Любой другой обходной путь?

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