Как я могу добавить существующую таблицу? - PullRequest
0 голосов
/ 28 мая 2019

Поскольку я работаю над автоматическим сборщиком и записью данных, я использую POI (4.1) для добавления существующего файла Excel .xlsx Пока все в порядке, пока я не понял, что Excel, в который я пишу и читаю, содержит «Таблицу» из автоматического импорта данных. Это означает, что последняя строка, к которой мне нужно добавить, является последней строкой импортированной таблицы, но я хочу добавить таблицу.

Я слышал о таблицах, но я не думаю, что это решит мою проблему, потому что я не очень хорошо ее понимал. Я попытался увеличить таблицу в Excel, чтобы записать в нее, но я обнаружил, что последняя строка таблицы, содержит она или нет, используется как последняя существующая строка.

/**This Method is is building the XSSFRow out of the String[] array. It works fine, as the Stream
     * is just in another method*/

private void schreibeInWorkbook(String[] zuSchreiben)
    {
        XSSFSheet worksheet = workbook.getSheetAt(findSheet(zuSchreiben[1]));

        int lastRow = worksheet.getLastRowNum();

        XSSFRow row = worksheet.createRow(++lastRow);
        int cellnum = 0;
        for (Object obj : zuSchreiben)
        {
            try
            {
                obj = Double.parseDouble((String) obj);
            }
            catch (NumberFormatException e)
            {
            }
            Cell cell = row.createCell(cellnum++);

            if (obj instanceof String)
            {
                obj = ((String) obj).replaceAll("\"", "");
                cell.setCellValue((String) obj);
            }
            else if (obj instanceof Double)
            {

                cell.setCellValue((Double) obj);
            }
            else if (obj instanceof Integer)
            {
                cell.setCellValue((Integer) obj);
            }
        }
        int r = row.getRowNum();
        Cell c2 = row.createCell(cellnum++);
        c2.setCellFormula(formulaXYZ);
        Cell c3 = row.createCell(cellnum++);
        c3.setCellFormula(formulaXYZ);

    }

Я подумал, что могу просто развернуть таблицу Excel вручную и добавить ее туда, но она всегда появляется в следующей строке сразу после ее конца, хотя есть тонны пустых строк. Это то, что мой JavaCode добавляет в Excel

...