2016-09-23 70 views
1

我已經重複的行和列讀取Excel中,但顯示Arrayindexoutofbound exception.I給下面如何閱讀

代碼我的代碼和錯誤JXL Excel工作表行和列:

for (int i = 0; i <= wb.getSheet(0).getRows(); i++) { 
      for (int j = 0; j <= wb.getSheet(0).getColumns(); j++) { 
       String testData = wb.getSheet(0).getCell(i, j).getContents(); 
       System.out.println(testData); 
      } 
     } 

Stackrace

User id 
    en0063 
    en0070 
    Psw 
    en0063 
    THEROCKZ1 
    Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 2 
     at jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356) 
     at ExcelRead.main(ExcelRead.java:29) 

防爆CEL圖片 enter image description here

回答

1

您已超出行數和列數因您statments - 改變<=<

for (int i = 0; i < wb.getSheet(0).getRows(); i++) { 
     for (int j = 0; j < wb.getSheet(0).getColumns(); j++) { 
      String testData = wb.getSheet(0).getCell(i, j).getContents(); 
      System.out.println(testData); 
     } 
} 

順便說這將是一個更容易閱讀,如果你保存你sheet在變量如

Sheet firstSheet = wb.getSheet(0); 

和再使用它作爲

for (int i = 0; i < firstSheet.getRows(); i++) { 
// etc 

編輯

我建議你打印出的行和細胞的數量,因爲它似乎是你正在使用的庫似乎包括那些空白也。也許你需要爲此進行測試。

想想看,你可以有像

X X X 
X X X 
X X X X 
+0

用戶ID- en0063 PSW- en0063 用戶ID en0063 PSW en0063 異常線程 「main」 java.lang.ArrayIndexOutOfBoundsException:2 \t在Login.main(Login.java:28)在jxl.read.biff.SheetImpl.getCell(SheetImpl.java:356) \t at ReadExcel.redExcel(ReadExcel.java:39) 我仍然得到相同的錯誤 –

+0

我已經更新了我的答案 –