В следующем коде я получаю исключение java.lang.NullPointerException для первого row.createCell(0)
.
Когда я удаляю spreadSheet.getRow(i+1)
и блок if после него, затем заменяю их на spreadSheet.createRow(i+1)
все это работает.
К сожалению, при таком удалении некоторые существующие данные удаляются из моих строк, поэтому я хотел бы иметь возможность остановить это нулевое исключение.Кажется, не могу понять, что его вызывает:
- я определенно определен
- определена строка, или мы создадим новую строку в блоке if
- ячейка заново сделана с
createCell()
, и поэтому ее не нужно определять заранее
Я не уверен, что еще можно попробовать, я в основном озадачен тем, как это происходитработает, когда я создаю новую строку, но не работает, когда я беру существующую.
//Clone template
System.out.println(workbook.getNameIndex("template"));
spreadSheet = workbook.cloneSheet(workbook.getNameIndex("template")+1, infoString);
//Apply data to cells
for (int i = 0; i < chartData.getItemCount();i++) {
row = spreadSheet.getRow(i+1);
if (row == null) {
spreadSheet.createRow(i+1);
}
row.createCell(0).setCellValue(i+1);
row.createCell(1).setCellValue(chartData.getDataItem(i).getXValue());
row.createCell(2).setCellValue(chartData.getDataItem(i).getYValue());
}