Как отфильтровать данные и создать сводную таблицу на отфильтрованных данных с помощью Apache POI? - PullRequest
0 голосов
/ 27 сентября 2019

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


    }

Может кто-нибудь помочь мне, как создать сводную таблицу только на отфильтрованных данных.

...