У меня есть небольшая загадка при использовании getLastRowNum(). Я пытаюсь получить количество строк с данными из листа Excel. Предположим, что у меня есть 3 строки, он должен вернуться в выписке из трех строк. Моя проблема теперь неважно, сколько строк я заполняю, она возвращает мне определенное фиксированное число. Ниже приводится отрывок кода:getLastRowNum не возвращает правильное количество строк
FileInputStream fis = new FileInputStream("C:\\Test Data\\Login.xlsx");
XSSFWorkbook wb = new XSSFWorkbook(fis);
XSSFSheet sheet = wb.getSheet("Login");
System.out.println("No. of rows : " + sheet.getLastRowNum());
My Excel лист состоит из следующих
С прикрепленным изображением, я должен получать количество строк в 4, но я получаю 6 вместо.
Любые советы глубоко оценены. Заранее спасибо.
Привет, @ Константин, спасибо вам за отзыв. Моя ошибка, она должна вернуться 3. Что касается дополнительных пустых строк, могу ли я посоветовать о том, как удалить пустые строки, и чтобы в будущем, независимо от того, сколько строк я добавляю, это даст мне правильный подсчет строк? Еще раз спасибо – lamCM
@lamCM Выберите строки 5-7 в Excel, удалите их и сохраните книгу. Однако ваш код будет по-прежнему восприимчивым к таким проблемам, поэтому лучше не полагаться на 'getLastRowNum()'. Итерируйте строки и проверьте, имеют ли они непустые данные. Вы можете перебирать назад из 'getLastRowNum()' до тех пор, пока не найдете непустую строку, если вы просто хотите найти последнюю строку значений, но у вас все еще могут быть пробелы/недостающие строки между другими строками, поэтому все зависит от на то, что вам нужно. – Andreas
Другой способ получить количество строк - это итерация с конца, пока мы не получим первую непустую строку. И если индекс этой строки будет X, то верните X + 1 (не забывайте, что X основано на нуле) –