рассмотрите скриншот моего ExcelSheet ниже
Теперь рассмотрим код ниже, который будет повторять каждую строку, затем повторять каждую ячейку и затем печатать значение ячейки.
public void excelData2(int sheetNo) {
Iterator<Row> rowIterator = workbook.getSheetAt(sheetNo).rowIterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Iterator<Cell> cellIterator = row.cellIterator();
while (cellIterator.hasNext()) {
Cell cell = cellIterator.next();
String cellValue = dataFormatter.formatCellValue(cell);
System.out.print(cellValue + "\t");
}
System.out.println();
}
}
На самом деле, глядя на таблицу Excel, мы видим, что есть 2 строки и 1 столбец справа !!.
Итак, первый цикл while
повторяется два раза, как и ожидалось :), но внутренний цикл while
, который является cellIterator
, повторяется 26 раз вместо 1, даже если в следующей ячейке нет значения вЭто.В идеале, когда во 2-й итерации cellIterator.hasNext()
должно давать ложное право?почему он дает истинное значение до 26 раз?У кого-нибудь есть идея?
Примечание: Я не хочу ставить условие, например isEmpty()
или ==""
и т. д.
Примечание2: У меня есть другое решение, я могу пойти с этим.Но я хочу знать, почему это происходит.