我正在尝试从Excel工作表中读取以下数据
使用以下代码
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
。在尝试解决同样问题的其他解决方案后,我对如何让它看到剩下的表格感到茫然。
答案 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();
}
}
}
以上代码可以正常工作并获取日期
答案 1 :(得分:0)
我和你使用相同的数据,我可以通过我的代码得到1000484
值。
这是我的代码:
package com.jason.xls;
import java.io.File;
import jxl.Cell;
import jxl.Sheet;
import jxl.Workbook;
public class XlsParser {
public static void main(String[] args) {
final String path = "/home/coder/filepath.xls";
System.out.println(readUserNameFromXls(path));
}
public static String readUserNameFromXls(final String path) {
File file = new File(path);
try {
Workbook wb = Workbook.getWorkbook(file);
Sheet sheet = wb.getSheet(0);
Cell a2 = sheet.getCell(0, 2);
return a2.getContents().trim();
} catch (Exception e) {
return null;
}
}
}
下载jxl.jar
我的代码结果是:Code Result Image