У меня должно быть 9 листов
Ваш метод создает только один лист в книге. Предполагая, что вы пытаетесь вызвать этот метод 9 раз, вы заново создаете новый пустой Workbook
каждый раз, когда вызываете этот метод, перезаписывая файл каждый раз. Это объясняет, почему вы получаете только фамилию в массиве.
Вместо этого создайте Workbook
один раз, затем передайте его этому методу, чтобы вы могли создавать листы на том же Workbook
. Затем после последнего вызова этого метода, затем запишите его в FileOutputStream
.
и заполняется только столбцом № 13
У вас здесь похожая проблема. Вы создаете строку с createRow(row)
для каждого столбца. Когда вы делаете это, вы перезаписываете любую строку с новым пустым Row
, стирая все значения ячеек, кроме последнего. Создайте Row
вне внутреннего цикла for
, но внутри внешнего цикла for
и используйте его внутри внутреннего цикла for
.
for(int row = 0; row < allength; row++){
Row currentRow = sheet.createRow(row);
for(int column = 0; column < 13; column++){
Cell cell = currentRow.createCell(column);
cell.setCellValue(arraylistCategory.get(row)[column]);
}
}