Вы не инициализировали свой массив str
. Инициализируйте его после определения row
:
int row = sheet.getRows();
str = new String[row];
Это избавит от NullPointerException.
Однако вы также не создаете двумерный массив. Вы создаете одномерный массив, каждый индекс которого содержит одну строку, содержащую данные только последнего столбца.
Немного измени свой код:
Изменение
String[] str;
К
String[][] str;
Инициализируйте его после инициализации row
и col
:
int row = sheet.getRows();
int col = sheet.getColumns();
str = new String[row][col];
Затем немного измените ваши циклы:
for(int i = 0; i < row; i++){
for(int j = 0; j < col; j++){
Cell cell = sheet.getCell(j,i);
String column;
if (j == 5) {
column = "Answer: " + cell.getContents();
} else {
column = cell.getContents().toString();
}
str[i][j] = column;
}
}