gpt4 book ai didi

java - 使用 jxl 读取 Excel 工作表无法超过 255 行

转载 作者:行者123 更新时间:2023-12-01 11:04:39 30 4
gpt4 key购买 nike

我尝试使用 jxl jar 读取旧格式的 Excel 工作表,它工作正常,但在 255 行之后它会抛出错误:

java.lang.ArrayIndexOutOfBoundsException: 255

我无法使用 Poi jar 阅读,因为它是旧格式,非常感谢任何帮助!

下面是java代码片段:

 public HashMap<String, Float> readAllRowsOnePoint(String path, String sheetname) throws BiffException, IOException {
System.out.println("Path download" + path);
FileInputStream fs = new FileInputStream(path);
Workbook wb = Workbook.getWorkbook(fs);
Sheet sheet = wb.getSheet(sheetname);
// To get the number of rows present in sheet
int totalNoOfRows = 500;
System.out.println("The rows count is " + totalNoOfRows);
HashMap<String, Float> map = new HashMap<>();
for (int row = 2; row < totalNoOfRows; row++) {
try {
Cell dateCell = null;
Cell psidCell = null;
Cell nameCell = null;
Cell quantityCell = null;
Cell billingCell = null;

try {
dateCell = sheet.getCell(0, row);
psidCell = sheet.getCell(1, row);
nameCell = sheet.getCell(2, row);
quantityCell = sheet.getCell(8, row);
billingCell = sheet.getCell(10, row);
} catch(Exception e){
// e.printStackTrace();
}
String date = dateCell.getContents().trim();
String psid = psidCell.getContents().trim();
String name = nameCell.getContents().trim();
String quantity = quantityCell.getContents().trim();
String billing = billingCell.getContents().trim();

System.out.println();
} catch(Exception e) {
System.out.println("Error in row " + row + " Exception " );
}
}
return map;
}

最佳答案

您的问题在这一行:

for (int i = 0 ; i < 1000; i++)

您不能只插入 1000,因为您不知道每个工作表是否有 1000 行。只需使用 Sheet 对象中的 getRows() 方法(正如该行上方的注释中所示):

for (int i = 0 ; i < s.getRows(); i++)

这样您就不会收到 ArrayIndexOutOfBoundsException,因为循环在所有行完成后停止。

关于java - 使用 jxl 读取 Excel 工作表无法超过 255 行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33078438/

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