我从阅读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)
答案 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