2016-02-28 67 views
0

我想讀取一個Excel文件,其中包含用戶名和密碼的列表。 我得到 「了java.lang.RuntimeException:java.lang.ArrayIndexOutOfBoundsException:2」ArrayIndexOutOfBoundsException當嘗試從Excel中讀取數據的Selenium webdriver

我的Excel看起來像這樣

用戶名密碼--- U1 P1

U2 P2

的U3 P3

U4 P4

意義,它有2列5行。我不希望第一行被計入count,所以我給了Object data [] [] = new Object [rows-1] [cols];

請協助解決問題。謝謝,

package com; 

import org.testng.annotations.DataProvider; 
import org.testng.annotations.Test; 

public class LoginTest { 

    @Test(dataProvider="getData") 
    public void doLogin(String userName, String password){ 


    } 
    @DataProvider 
    public Object[][] getData(){ 

     Xls_Reader xls = new Xls_Reader("E:\\Pessoal\\QTPSelenium\\Excel\\Login.xlsx"); 
     int rows = xls.getRowCount("Login"); 
     System.out.println("Row Count---"+rows); 
     int cols = xls.getColumnCount("Login"); 
     System.out.println("Column Count---"+cols); 

     Object data[][] = new Object[rows-1][cols]; 

     for(int rNum=2;rNum<=rows;rNum++){ 
      for(int cNum=0;cNum<=cols;cNum++){ 
       System.out.println(xls.getCellData("Login", cNum, rNum)); 
//ERROR IN THIS LINE 
        data[rNum][cNum] = xls.getCellData("Login", cNum, rNum); 
       } 
      } 
      return data; 
     } 
    } 

我得到的錯誤在這行

   data[rNum][cNum] = xls.getCellData("Login", cNum, rNum); 
+0

哪些行列數的值是多少?而且,你能分享這個excel嗎? –

+0

好像你正在對行進行基於0的索引,對於'new Object [rows-1] [cols]'列進行基於1的索引''因此,你可能想要使用'data [rNum-1] [cNum] '分配值。 – Sachin

+0

Hi @Sachin。不我不是。我有5行2列。 –

回答

0

試試這個

for(int rNum=1;rNum<rows;rNum++){ 
      for(int cNum=0;cNum<cols;cNum++){ 
       System.out.println(xls.getCellData("Login", rNum, cNum)); 
        data[rNum-1][cNum] = xls.getCellData("Login", rNum, cNum); 
       } 
      } 
+0

我仍然得到相同的錯誤。 @Ravindra –

+0

我也試過\t data [rNum-2] [cNum] = xls.getCellData(「Login」,cNum,rNum);仍然不能正常工作 –

+0

你能告訴控制檯中行和列的值嗎? 意思是,什麼是 System.out.println(「Row Count ---」+ rows)的輸出; System.out.println(「Column Count ---」+ cols); –

相關問題