java - 如何循环遍历 ArrayList 并获取从 Excel 读取的数据
问题描述
我在不同的单元格中有带有username
、emailIDs
和的 Excel 工作表。我已将所有单元格值添加到 Arraylist 中。但是,现在我需要遍历索引以每次读取用户名并将其传递给其他应用程序中的文本框。phone
location
我已经编写了代码,直到添加到 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());
}
}
}
}
预期:每次都需要读取用户名和其他单元格值。
解决方案
这里理想的解决方案是创建一个自定义类(例如“用户”),其中包含您需要的所有字段,例如用户名/id/电子邮件等以及相关的 getter 和 setter 方法。然后,对于您从 Excel 解析的每一行,您可以创建一个新的 User 对象,为其存储相应的值,并最终将其添加到ArrayList<User>
. 然后您可以轻松地对其进行迭代并根据需要获取每个 User 对象的值。
推荐阅读
- mongodb - 您是否在 JDK14 中使用了响应式 mongodb 驱动程序
- azure-eventhub - 是否可以通过 PartitionKey 而不是 PartitionId 配置 Azure 事件中心捕获文件名?
- c++ - 为什么 GLFW 在释放键后会调用键回调函数几秒钟?
- python - 我的 python 打印 trie 函数无法打印 - RecursionError:比较超出最大递归深度
- python - 使用 Python 写入 Excel 中的精确单元格
- azure - 无法解析请求 - MissingJsonReferenceId:使用 PowerShell Az 命令创建 NIC 时出错
- c++ - 从返回抽象类的函数返回 NULL
- python - 位于 MDI 区域中心的 PyQt 用户徽标
- javascript - 将 Google 地方信息搜索限制在坐标或地点周围特定边界内的地方
- javascript - 如何检查 React JS 应用中使用的第三方库的漏洞?