Добавление данных в ArrayList при чтении данных из Excel с использованием POI Apache

Я пытаюсь читать данные из листов Excel, используя POI Apache. Проблема, с которой я сталкиваюсь, заключается в том, что я хочу одновременно читать данные всей ячейки строки и хранить ее в ArrayList класса Type, но вывод является только ячейкой по ячейке.

Вот класс, который открывает лист excel и считывает ячейку данных по ячейке.

package testing; import javax.swing.JFileChooser; import java.io.File; import java.io.FileInputStream; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.Iterator; import java.util.Map; import java.util.Set; import java.util.TreeMap; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; import org.apache.poi.ss.usermodel.Workbook; import org.apache.poi.xssf.usermodel.XSSFSheet; import org.apache.poi.xssf.usermodel.XSSFWorkbook; public class ReadExcelDemo { ArrayList<Data> list = new ArrayList<>(); String path; public ReadExcelDemo(String path) { this.path = path; try { FileInputStream file = new FileInputStream(new File(path)); //Create Workbook instance holding reference to .xlsx file XSSFWorkbook workbook = new XSSFWorkbook(file); //Get first/desired sheet from the workbook XSSFSheet sheet = workbook.getSheetAt(0); System.out.println(""); //Iterate through each rows one by one Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); //For each row, iterate through all the columns Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); //Check the cell type and format accordingly switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); break; case Cell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue() + "\t"); break; } } System.out.println(""); } file.close(); } catch (Exception e) { e.printStackTrace(); } } } 

Класс данных

 package testing; public class Data { int ID; String F_Name,L_Name; public Data(int ID, String F_Name, String L_Name) { this.ID = ID; this.F_Name = F_Name; this.L_Name = L_Name; } public int getID() { return ID; } public String getF_Name() { return F_Name; } public String getL_Name() { return L_Name; } 

введите описание изображения здесь

Я хочу добавить данные ячейки в Arraylist, как это за один раз

 List.add(new Data(1,"Amit","shukla")); 

но данные возвращаются итератором один за другим, как сначала он выдает 1, затем amit, а затем shukla, который действительно сложно добавить в arraylist

Я так много пытался добавить данные в ArrayList на одной строке, но я не мог. Было бы очень полезно, если бы вы помогли мне решить эту проблему.

this.path = path;

  try { FileInputStream file = new FileInputStreaHashMap<K, V>ile(path)); HashMap<Integer, Data> mp= new HashMap<Integer, Data>(); //Create Workbook instance holding reference to .xlsx file XSSFWorkbook workbook = new XSSFWorkbook(file); //Get first/desired sheet from the workbook XSSFSheet sheet = workbook.getSheetAt(0); System.out.println(""); //Iterate through each rows one by one Iterator<Row> rowIterator = sheet.iterator(); while (rowIterator.hasNext()) { Row row = rowIterator.next(); //For each row, iterate through all the columns Iterator<Cell> cellIterator = row.cellIterator(); while (cellIterator.hasNext()) { Cell cell = cellIterator.next(); //Check the cell type and format accordingly int i=0; int j=0; switch (cell.getCellType()) { case Cell.CELL_TYPE_NUMERIC: System.out.print(cell.getNumericCellValue() + "\t"); i=Integer.parseInt(cell.getNumericCellValue()); Data d= new Data(); d.setId(cell.getNumericCellvalue()); break; case Cell.CELL_TYPE_STRING: System.out.print(cell.getStringCellValue() + "\t"); if( j==0){ Data data= mp.get(i); data.setName(cell.getStringCellValue()); mp.put(i, data); j=j+1; } else { Data data= mp.get(i); data.setLastName(cell.getStringCellValue()); mp.put(i, data); j=0; } break; } } System.out.println(""); } List<Data> dataList= new ArrayList<Data>(); for (Data d : mp.values()) { dataList.add(d); } file.close(); } catch (Exception e) { e.printStackTrace(); } 
  • Java-эквивалент .net-свойств?
  • Создание .xlsx с подключением db
  • Экспорт нескольких вкладок с помощью ui-grid в excel
  • Преобразование JSON в XLS / CSV в Java
  • при добавлении изображения и текста в одну ячейку в excel с помощью poi, тогда изображение переопределяет текст
  • Excel для SQL Server с сайта (Angular2)
  • Есть ли OLE Automation в Java?
  • Массовый ввод в Java?
  • Как прочитать конкретный столбец excel и создать новый каталог с именем его ячеек?
  • Проверка даты Excel для формата MM / dd / yyyy
  • Как заблокировать файл Excel для чтения и записи в java?
  • Interesting Posts

    Почему эти две формулы дают мне то же самое неправильное значение?

    Защитить лист от вставки строк только в определенном диапазоне

    копировать строки с одного листа на другой с несколькими критериями

    Как читать цвет шрифта каждого текста в ячейке в apache poi 3.9

    Использование функции в VBA excel

    Не удалось изменить диапазон данных серии, используя VBA в Excel

    Как извлечь строку из ячейки справа налево с использованием определенного символа, который встречается более одного раза?

    Что не так с моей формулой OFFSET для проверки данных?

    Excel: getall строки для столбца a, если какой-либо из b не содержит текст

    Мой код заставляет excel работать очень медленно, мне было интересно, если это из-за ненужных циклов

    Ошибка несоответствия типа при создании PivotCache

    Перенос информации из листа 1 в лист2 в Excel с использованием VBA

    Совпадение случаев в разных колонках MS excel

    Создавать отчет из нескольких файлов excel, которые автоматически добавляются в папку с разными именами файлов

    Как выбрать столбцы на основе заголовка в проекте excel vba

    Давайте будем гением компьютера.