Я использую Apache poi api для java для записи в существующий лист в книге Excel. Моя проблема заключается в том, что на листе, который я пытаюсь изменить, если какая-либо ячейка в строке не является нулевой, то есть имеет какое-то значение в ней, тогда программа отлично работает и редактирует любую конкретную ячейку в этой строке. Например, если ячейка на моем листе (1,1) содержит значение, тогда у программы не будет проблем с редактированием других ячеек той же строки, например, (1,5) или (1,12) и т. Д. Но если вся моя строка пуста, то есть все ячейки содержат нуль, тогда код генерирует исключение nullpointer, которое я не могу понять, как удалить. Вот метод записи, который я использовал для моего проекта, чтобы написать конкретную ячейку в моем классе excel.Лист изменения уязвимости в excel с использованием apache poi api
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
Может кто-нибудь помочь мне избавиться от этого, так что мой код также записывает ячейку, даже если вся строка равна нулю? Спасибо
О да, это решило проблему. Большое спасибо :) – pslayer89
Thx. У меня такая же проблема. действительно удобный ответ. :-) – Juraj