Слайсер не работает для сводной таблицы - Aspose Cells - PullRequest
0 голосов
/ 13 февраля 2019

Слайсер не фильтрует данные сводной таблицы.

Я создаю сводную таблицу и срез, используя библиотеку ячеек Aspose для Java.Однако, когда я добавляю слайсер для двумерной сводной таблицы, его можно увидеть на листе Excel, но он не работает. Это работает, когда я вручную ставлю флажок Соединение фильтра в сводных таблицах-> Соединения фильтра.

Как я могу получить эту работу из кода

        try {
        Workbook wbook = new Workbook("invoice.xlsx");
        WorksheetCollection worksheets = wbook.getWorksheets();
        Worksheet workSheet =  worksheets.get("Aging_Details");
        PivotTableCollection pivotTables = 
                    workSheet.getPivotTables();

        String firstCell = workSheet.getCells().getFirstCell().getName();
        String lastCell = workSheet.getCells().getLastCell().getName();
        int ptableIndex = workSheet.getCells().getLastCell().getRow() +5;
        String pivotIndex= "J"+ptableIndex;
        String source = "="+"A1"+":"+"DC8472";
        System.out.println(source);
        int index = pivotTables.add(source, pivotIndex, "PivotTable20");
        PivotTable pivotTable = pivotTables.get(index);
        pivotTable.setRowGrand(false);
        pivotTable.setColumnGrand(true);

        pivotTable.addFieldToArea(PivotFieldType.ROW, 8);

        pivotTable.addFieldToArea(PivotFieldType.COLUMN, 76);

        pivotTable.addFieldToArea(PivotFieldType.DATA, 41);

        PivotField pf= pivotTable.getDataFields().get(0);
        pf.setFunction(ConsolidationFunction.SUM);

        //Set refresh data flag true
        pivotTable.setRefreshDataFlag(true);

        //Refresh and calculate pivot table
        pivotTable.calculateData();


         pivotTable.getPivotFilters().get(ind);


         pivotTable.refreshData();  


        pivotTable.setRefreshDataFlag(false);

        int idx = workSheet.getSlicers().add(pivotTable, "C"+ 
        (ptableIndex), pivotTable.getBaseFields().get(76));


        Slicer slicer = workSheet.getSlicers().get(idx);
        SlicerCacheItemCollection scItems = 
        slicer.getSlicerCache().getSlicerCacheItems();
        slicer.setNumberOfColumns(2);
        slicer.setStyleType(SlicerStyleType.SLICER_STYLE_LIGHT_6);
        slicer.getParent().setSelected(true);


        Style style1 = wbook.createStyle();
        com.aspose.cells.Font font1 = style1.getFont();
        font1.setColor(Color.getGreen());
        Style style2 = wbook.createStyle();
        com.aspose.cells.Font font2 = style2.getFont();
        font2.setColor(Color.getBlue());
        int i = 
        wbook.getWorksheets().getTableStyles().addPivotTableStyle("tt");
        // Get and Set the table style for different categories
        TableStyle ts = wbook.getWorksheets().getTableStyles().get(i);
        int index2 = 
        ts.getTableStyleElements().
                          add(TableStyleElementType.FIRST_COLUMN);
        TableStyleElement e = ts.getTableStyleElements().get(index2);
        e.setElementStyle(style1);
        index2 = 
        ts.getTableStyleElements().add(
                                  TableStyleElementType.GRAND_TOTAL_ROW);
        e = ts.getTableStyleElements().get(index2);
        e.setElementStyle(style2);

        pivotTable.setPivotTableStyleName("tt");

        System.out.println(filepath);
        wbook.save(filepath);



        }catch (Exception e) {

          e.printStackTrace();
        }
...