Поскольку я работаю над автоматическим сборщиком и записью данных, я использую 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