Я пытаюсь создать сводную таблицу для отфильтрованных данных, но она создает таблицу для полных данных.Используя setHidden (), я могу фильтровать данные, но когда я пытаюсь создать сводную таблицу, она берет все ячейки вместе со скрытыми данными.
private static void setCriteriaFilter(XSSFSheet sheet, int colId, int firstRow, int lastRow, String[] criteria) throws Exception {
CTAutoFilter ctAutoFilter = sheet.getCTWorksheet().getAutoFilter();
CTFilterColumn ctFilterColumn = ctAutoFilter.addNewFilterColumn();
ctFilterColumn.setColId(colId);
CTFilters ctFilters = ctFilterColumn.addNewFilters();
for (int i = 0; i < criteria.length; i++) {
ctFilters.addNewFilter().setVal(criteria[i]);
}
for (int r = firstRow; r <= lastRow; r++) {
XSSFRow row = sheet.getRow(r);
boolean hidden = true;
for (int i = 0; i < criteria.length; i++) {
String cellValue =row.getCell(i).getStringCellValue();
if (criteria[i].equals(cellValue)) hidden = false;
}
if (hidden) row.getCTRow().setHidden(hidden);
}
}
Может кто-нибудь помочь мне, как создать сводную таблицу только на отфильтрованных данных.