首页 > 解决方案 > 如何循环遍历 ArrayList 并获取从 Excel 读取的数据

问题描述

我在不同的单元格中有带有usernameemailIDs和的 Excel 工作表。我已将所有单元格值添加到 Arraylist 中。但是,现在我需要遍历索引以每次读取用户名并将其传递给其他应用程序中的文本框。phonelocation

我已经编写了代码,直到添加到 ArrayList 但不确定如何每次都从列表中读取每个值并卡在这里。

意思是,第一次我应该将用户名读取为“A”,电子邮件 ID 为“ab@c.com”,电话号码为“12333”,位置为列表中的“xzy”。当循环第二次继续时,我应该能够读取用户名“B”和映射到它的值。

public  ArrayList<String>  getdata() throws IOException {

    FileInputStream fis = new FileInputStream("C:\\Users\\vnaditya\\Downloads\\Book2.xlsx");
    XSSFWorkbook XS = new XSSFWorkbook(fis);

    int numberofsheets = XS.getNumberOfSheets();

    for(int i=0; i< numberofsheets; i++) {
        if(XS.getSheetName(i).equalsIgnoreCase("Sheet1")) {
            XSSFSheet XSS = XS.getSheetAt(i);

            Iterator<Row> r = XSS.iterator();
            while (r.hasNext()) {
                Row row = r.next();
                Iterator <Cell> cell = row.cellIterator();

                while (cell.hasNext()) {
                    Cell cellvalue = cell.next();

                    String message = cellvalue.getStringCellValue();
                    System.out.println(message);

                    a.add(cellvalue.getStringCellValue());
                    // System.out.println(a);
                    // System.out.println(a.size());
                 }
            }
        }
    }    

预期:每次都需要读取用户名和其他单元格值。

标签: javaexceliterator

解决方案


这里理想的解决方案是创建一个自定义类(例如“用户”),其中包含您需要的所有字段,例如用户名/id/电子邮件等以及相关的 getter 和 setter 方法。然后,对于您从 Excel 解析的每一行,您可以创建一个新的 User 对象,为其存储相应的值,并最终将其添加到ArrayList<User>. 然后您可以轻松地对其进行迭代并根据需要获取每个 User 对象的值。


推荐阅读