Есть ли способ, которым мы можем читать данные из созданной сводной таблицы, используя код Java? - PullRequest
0 голосов
/ 02 мая 2019

Я создаю сводную таблицу с помощью poi и сохраняю ее на другой лист, но после этого я хочу прочитать данные недавно созданной сводной таблицы, но каким-то образом я не смог ее получить Для создания Pivot я использую:

    File file = new File(filepath);
    try (FileInputStream inputStream = new FileInputStream(file);)

    {

        XSSFWorkbook testData = null;
        testData = new XSSFWorkbook(inputStream);
        XSSFSheet testDataSheet = testData.getSheet(sheetname);
        XSSFSheet sheet2 = testData.createSheet("pivot");
        XSSFPivotTable pivotTable = sheet2.createPivotTable(new AreaReference(range, null), new CellReference("A1"), testDataSheet);

        pivotTable.addRowLabel(rownum);
        pivotTable.addColumnLabel(dataConsolidateFunction, value);

        FileOutputStream fileOut = new FileOutputStream(pivotsheetpath);
        testData.write(fileOut);
        fileOut.close();
        inputStream.close();
        testData.close();

    }

}

получение данных из excel:

    String[][] data = null;
    File file = new File(filePath);

    try (FileInputStream inputStream = new FileInputStream(file);)
    {

        int row = 0;
        int column = 0;

        DataFormatter dataFormatter = new DataFormatter();

        XSSFWorkbook testData = null;
        String fileExtensionName = FilenameUtils.getExtension(filePath);
        if (fileExtensionName.equals("xlsx"))
            testData = new XSSFWorkbook(inputStream);

        XSSFSheet testDataSheet = testData.getSheet(sheetName);
        row = testDataSheet.getLastRowNum() - testDataSheet.getFirstRowNum();
        column = testDataSheet.getRow(0).getLastCellNum() - testDataSheet.getRow(0).getFirstCellNum();
        data = new String[row + 1][column];

        for (Row rows : testDataSheet)
            for (Cell cell : rows)
                data[rows.getRowNum()][cell.getColumnIndex()] = dataFormatter.formatCellValue(cell);
        testData.close();
        return data;
    }
...