gpt4 book ai didi

java.lang.ArrayIndexOutOfBoundsException 从 Excel 文件读取

转载 作者:行者123 更新时间:2023-11-30 07:14:47 25 4
gpt4 key购买 nike

我正在尝试从 Excel 工作表读取以下数据

Data

使用以下代码

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
import jxl.read.biff.BiffException;

public String readUsernameFromExcel() {
File src = new File("C:/filepath.xls");

try {

Workbook wb = Workbook.getWorkbook(src);
Sheet sh1 = wb.getSheet(0);
Cell a2 = sh1.getCell(0, 2);
data1 = a2.getContents().trim();


} catch (BiffException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return data1;

}

因此,当我尝试获取单元格 0,1 时,我可以很好地获取用户名 1000483。但是当我尝试读取 0,2 时,我得到 java.lang.ArrayIndexOutOfBoundsException: 2

我想做的是从 Excel 工作表中读取数据,将其作为 String 返回,然后将其传递到登录我的应用程序。但当我尝试 0,2 时,我似乎超出了预期。我尝试了一些东西,例如 for 循环

 for (int rows = 0; rows < sh1.getRows(); rows++) {
Sheet sh1 = wb.getSheet(0);
Cell a2 = sh1.getCell(0, 2);

}

我知道第一个数字是列,第二个数字是行。我还了解到代码无法看到过去的 0,1。在尝试了同一问题的其他解决方案后,我只是不知道如何让它看到工作表的其余部分。

最佳答案

sh1.getRows() 返回 3。由于循环从 0 开始,所以 sh1.getRows() 需要减 1(如下)。下面的循环工作正常并正确返回值。

import java.io.File;
import java.io.IOException;

import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;

public class Excel {

public static void main(String[] args) {
File src = new File("c:/filepath.xls");

try {
String data1;
Workbook wb = Workbook.getWorkbook(src);
Sheet sh1 = wb.getSheet(0);


for (int rows = 1; rows < sh1.getRows(); rows++) {
for (int column = 0; column <= sh1.getColumns()-1; column++) {

Cell a2 = sh1.getCell(column, rows);
data1 = a2.getContents().trim();
System.out.println(data1);
}
}

} catch (Exception e) {
e.printStackTrace();
}
}



}

上面的代码可以正常工作并获取日期,没有错误

关于java.lang.ArrayIndexOutOfBoundsException 从 Excel 文件读取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38610169/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com