Слайсер не фильтрует данные сводной таблицы.
Я создаю сводную таблицу и срез, используя библиотеку ячеек 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();
}