gpt4 book ai didi

java - 如何从xlsx文件中读取值,通过getter和setter将值存储到对象,最后存储到数组列表

转载 作者:行者123 更新时间:2023-12-02 02:57:32 25 4
gpt4 key购买 nike

我尝试从 Excel 文件中读取值,将 XSSFWorkbook 中的每一行和单元格存储在一个对象中,并将其添加到数组列表中。但它只添加数组列表中的最后一个元素。包括我下面的代码。

 try 
{
ArrayList<OrderInfo> orderList = new ArrayList<OrderInfo>();
XSSFWorkbook wb = new XSSFWorkbook(new FileInputStream("C:/mytemp/Order Details.xlsx"));

for (Sheet sheet : wb ) {
OrderInfo order_Info = new OrderInfo();
for (Row row : sheet) {
int rowId = row.getRowNum();
if(rowId != 0){
Cell del_zone = row.getCell(0);
order_Info.setDel_zone(del_zone.getStringCellValue());
Cell cust_id = row.getCell(1);
order_Info.setCustomer_id(cust_id.getStringCellValue());
}
}
orderList.add(order_Info);
}

for(int i = 0;i<orderList.size();i++){
logger.info("*******Print List Object******"+orderList.get(i).getDel_zone()+"****Cust_Id****"+orderList.get(i).getCustomer_id());
}

}
catch (Exception e)
{
System.err.println("Exception :" + e.getMessage());
}

最佳答案

orderList.add(order_Info) 应该位于 for (Row row :sheet) 循环内部,您可以将其放在外部

还需要在循环内创建:OrderInfo order_Info = new OrderInfo(); 应该稍后

           for (Sheet sheet : wb ) {
for (Row row : sheet) {
int rowId = row.getRowNum();
if(rowId != 0){
Cell del_zone = row.getCell(0);
OrderInfo order_Info = new OrderInfo();
order_Info.setDel_zone(del_zone.getStringCellValue());
Cell cust_id = row.getCell(1);
order_Info.setCustomer_id(cust_id.getStringCellValue());
orderList.add(order_Info);
}
}
}

关于java - 如何从xlsx文件中读取值,通过getter和setter将值存储到对象,最后存储到数组列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42859017/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com