Я использую Apache poi api для java для записи на существующий лист в книге Excel. Моя проблема в том, что на листе, который я пытаюсь редактировать, если какая-либо ячейка в строке не является нулем, т.е. имеет какое-то значение в ней, тогда программа работает нормально и редактирует любую конкретную ячейку в этой строке. Например, если ячейка на моем листе (1,1) содержит значение, тогда у программы не будет проблем с редактированием других ячеек той же строки, например (1,5) или (1,12) и так далее. Но если вся моя строка пуста, то есть все ячейки содержат null, тогда код выдает исключение с нулевым указателем, которое я не могу понять, как удалить. Вот метод записи, который я использовал в своем проекте для записи конкретной ячейки в моем классе Excel.
public void write(int row, int column, String label) {
try {
InputStream inp = new FileInputStream(filePath);
Workbook wb = WorkbookFactory.create(inp);
Sheet sheet = wb.getSheetAt(0);
Row sheetRow = sheet.getRow(row);
Cell cell = sheetRow.getCell(column);
//String cellContents = cell.getStringCellValue();
// //Modify the cellContents here
// // Write the output to a file
if (cell == null) {
cell = sheetRow.createCell(column);
cell.setCellType(Cell.CELL_TYPE_STRING);
}
cell.setCellType(Cell.CELL_TYPE_STRING);
cell.setCellValue(label);
FileOutputStream fileOut = new FileOutputStream(filePath);
wb.write(fileOut);
fileOut.close();
} catch (IOException ex) {
Logger.getLogger(ExcelManipulator.class.getName()).log(Level.SEVERE, null, ex);
} catch (InvalidFormatException ex) {
Logger.getLogger(ExcelManipulator.class.getName()).log(Level.SEVERE, null, ex);
}
}
Исключение, которое Java выдает при редактировании ячейки в нетронутой, т.е. нулевой строке:
Exception in thread "main" java.lang.NullPointerException
at seleniumtest.ExcelManipulator.write(ExcelManipulator.java:76)
at seleniumtest.SeleniumTest.main(SeleniumTest.java:28)
Результат Java: 1
Может ли кто-нибудь помочь мне избавиться от этого, чтобы мой код также записывал ячейку, даже если вся строка равна нулю? Спасибо