Я пытаюсь перебрать набор информации, которую я имею в электронной таблице, моя таблица имеет три столбца и две строки.Вызвано: java.util.NoSuchElementException - Использование итератора в Java?
Это мой код, я использую перебрать информации,
private List<DataRecord> allData = new ArrayList<>();
public DataRepository(String excelFilePath) {
FileInputStream inputStream;
try {
inputStream = new FileInputStream(new File(excelFilePath));
Workbook workbook = new XSSFWorkbook(inputStream);
Sheet firstSheet = workbook.getSheetAt(0);
Iterator<Row> iterator = firstSheet.iterator();
while (iterator.hasNext()) {
DataRecord record = new DataRecord();
Row nextRow = iterator.next();
Iterator<Cell> cellIterator = nextRow.cellIterator();
while (cellIterator.hasNext()) {
record.setCardNumber(cellIterator.next().getStringCellValue());
record.setCvv(cellIterator.next().getStringCellValue());
record.setPostcode(cellIterator.next().getStringCellValue());
}
allData.add(record);
}
inputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
public List<DataRecord> getAllData() {
return allData;
}
public void setAllData(List<DataRecord> allData) {
this.allData = allData;
}
Это сработало сегодня утром, и теперь, кажется, бросить выше исключение, и я не уверен, почему.
Благодаря
Это полные трассировки стеки
Caused by: java.util.NoSuchElementException: null
at java.util.TreeMap$PrivateEntryIterator.nextEntry(TreeMap.java:1205)
at java.util.TreeMap$ValueIterator.next(TreeMap.java:1252)
at gov.uk.dwp.epayments.repository.DataRepository.<init>(DataRepository.java:43)
at gov.uk.dwp.epayments.service.PayService.<init>(PayService.java:11)
at gov.uk.dwp.epayments.controller.PaymentController.<init>(PaymentController.java:23)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:422)
at org.springframework.beans.BeanUtils.instantiateClass(BeanUtils.java:147)
... 18 common frames omitted
Пожалуйста, поделитесь полной StackTrace. – hotzst
Возможно, у вас есть лишнее или отсутствующее значение столбца, которое отбрасывает цикл. Проверьте данные файла excel. –
Включите источники POI в рабочее пространство, чтобы отладить то, что именно происходит в итераторе. – Stroboskop