Добавлять данные после каждого запуска кода в следующие два последовательных столбца в уже созданном Excel, используя Java - PullRequest
3 голосов
/ 18 апреля 2019

Я пишу код для генерации некоторых отчетов. Я использую apache poi jar и java для чтения и записи данных в виде исключений. У меня есть вход, а также выдающиеся результаты (отчет превосходит). Теперь я могу запустить первый запуск правильно для вывода Excel с правильными данными. Теперь я хочу добавить новые данные в следующие два последовательных столбца, сохранив данные предыдущих строк и столбцов как есть. Может кто-нибудь помочь, как я могу добавить данные в столбцы, сохраняя предыдущие данные в Excel в Java? ` Спасибо

XSSFRow row = sheet.createRow(r);  

row.createCell(0).setCellValue(data1); 
row.createCell(1).setCellValue(data2);
row.createCell(2).setCellValue(data3);  
row.createCell(3).setCellValue(data4);
row.createCell(4).setCellValue(data5);

r++; 

FileOutputStream fileOut = new FileOutputStream(excelFileName);           
wb.write(fileOut);                  

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

1 Ответ

0 голосов
/ 18 апреля 2019

Вы можете добавить данные на лист с неизвестным количеством существующих столбцов, таких как

XSSFCell cell = row.createCell(row.getPhysicalNumberOfCells());
cell.setCellValue(dataN);

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

Если вы хотите добавить новые строки, сделайте это следующим образом:

XSSFRow row = sheet.createRow(sheet.getPhysicalNumberOfRows());
...