Я знаю, что на это должен быть простой ответ, но я в тупике.Я также не знаю, правильна ли формулировка, которую я использую для этого вопроса.
Итак, для проекта: я оцениваю ряд документов Excel по строкам и ячейкам за ячейкой и присваиваю найденные данныек объекту котенка, который имеет имя, идентификатор животного и адрес.
В методе printAddress () я хочу вернуть адрес для каждого объекта Kitten в виде строки, но я возвращаю только последний адрес для последнего Kitten, указанного в документе ввода Excel.Если возможно, я бы хотел избежать использования вложенных циклов for.
Должен ли я подумать о создании массива размером с количество котят, сохранении их адресов и возвращении этого в виде строки?
Код:
public class ReadExcelDoc {
public String printAddress(){
String printedAddress = "";
try {
FileInputStream kittenFile = new FileInputStream(new
File("./IntakeNotes.xlsx")
XSSFWorkbook wb = new XSSFWorkbook(kittenFile);
XSSFSheet sheet = wb.getSheetAt(0);
ArrayList<Kitten> kittenList = new ArrayList<Kitten>();
for (int i= sheet.getFirstRowNum() + 1; i<=
sheet.getLastRowNum(); i++) {
Kitten k = new Kitten();
Row r = sheet.getRow(i);
for (int j = r.getFirstCellNum(); j<= r.getLastCellNum();
j++) {
Cell c = r.getCell(j);
if (j==0) k.setName(c.getStringCellValue());
...
if (j==2) k.setAddress(c.getStringCellValue());
}
kittenList.add(k);
}
for (Kitten kit: kittenList) {
printedAddress = kit.getAddress();
}
wb.close();
}
catch(Exception e) { e.printStackTrace();}
return printedAddress;
}}