2017-03-17 1 views
0

엑셀 파일에서 객체의 XSSFWorkbook에있는 모든 행과 셀을 저장하고 값을 읽으려고했습니다. arraylist.But 그 arraylist의 마지막 요소를 추가. 내 코드를 아래에 포함하십시오.getls와 setter를 통해 객체를 저장하고 마지막으로 배열리스트에 값을 저장하는 xlsx 파일에서 값을 읽는 방법

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()); 
      } 

답변

2

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); 
         } 
        } 
       } 
+0

안녕 앤드류해야한다 감사. 나는 시도 할 것이고 당신에게 곧 알릴 것이다 :) –

+0

Wohoo !! 그것은 상사처럼 작동합니다 :) 고맙습니다. @ Andrew McGuinness –

관련 문제