2

您好我正在使用 jxl 工作簿库从 java 读取 Excel 文件。下面是代码。

Workbook wb = Workbook.getWorkbook(new File(destFile));

String line = "";                   // available
for (int sheetNo = 0; sheetNo < wb.getNumberOfSheets(); sheetNo++) {

  Sheet sheet = wb.getSheet(sheetNo);
  System.out.println("Sheet Name is:\t" + sheet.getName());
  if(sheet.getName().trim().equals("Store List")){
    int columns = sheet.getColumns();
    int rows = sheet.getRows();
    String data;

    for (int row = 0; row < rows; row++) {      
      for (int col = 1; col < columns; col++) {
        data = sheet.getCell(col, row).getContents();
        line = line + data + "#";
      }
       line += "#&#";
    }
    System.out.println("Entire line is" + line);
  }
}

上述代码从excel文件中读取行列数据,并传递给服务方法进行进一步处理。

当我为空单元格逐行遍历它时,Java 代码会抛出IndexOutOfBoundException. 请在下面找到引发异常的 java 代码。

for(int elementCount=4;elementCount<elements.length;elementCount++) {
  String strquantity =      rowValues[elementCount];
  int quantity=0;
  if(strquantity.equals("")){
    quantity = 0;
  } else {
    quantity = Integer.parseInt(strquantity);
    System.out.println("Quantity value is:\t" + quantity);
  }
}

正如您在第 2 行引发的上述代码异常。

我相信原因是由于工作簿库。

4

1 回答 1

0

在做了一些 rnd 之后我得到了解决方案,如果它是空单元格将从 jxl API 获取 0 或 null 值。在我的代码中,我正在寻找空字符串

 if(strquantity.equals("")){
       quantity = 0;
    }

现在代码更改为以下

if(strquantity.equals(null) || strquantity.equals("0")){
      quantity = 0;
   }
于 2013-07-05T12:57:02.530 回答