CellIterator
пропускает пустые ячейки при повторении ячеек в строке. Вы можете обойти эту проблему, используя цикл for вместо итератора:
Row row = rowIterator.next();
...
int lastCellIndex = 8; // (9-1 cells)
for (int i=0; i<lastCellIndex; i++) {
Cell cell = row.getCell(cn, Row.MissingCellPolicy.CREATE_NULL_AS_BLANK);
...
}
Количество ячеек в вашем примере равно 9, что делает lastCellIndex 8. Если число ячеек в строке будет менятьсяиспользуйте row.getLastCellNum();
в верхней строке заголовка, чтобы получить длину.
Более подробную информацию о getCell()
можно найти в документации .