2016-09-23 88 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

我已经更新了我的答案 –