如何阅读JXL Excel工作表行和列

时间:2016-09-23 05:57:45

标签: java excel jxl

我从阅读excel中迭代了行和列,但显示Arrayindexoutofbound异常。我在下面给出了我的代码和错误

代码:

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)

Excel图片 enter image description here

1 个答案:

答案 0 :(得分:1)

由于您的统计信息,您超出了行数和列数 - 将<=更改为<

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