循环通过excel行保持给我一个ArrayIndex ...异常

时间:2014-09-13 02:16:59

标签: java excel loops selenium selenium-webdriver

好的,所以我被困住了,我相信这是一个简单的解决方案。基本上我开始初步转换,或者至少构建一个演示,用于关键词驱动的硒测试框架。每行将包含将用于驱动测试的数据。行完成后,下一行将包含下一个测试,依此类推。所以我刚刚开始,我遇到了一些麻烦。这是我的代码:

public List<String> getRowData(String row){
    Sheet sheet = null;
    List<String> getContents = new ArrayList<>();
    try{
        sheet = getWorkBook().getSheet("test");
        for(int i=0; i<sheet.getRow(i).length; i++){
            getRowData = sheet.getRow(i);
            for(Cell rowData : getRowData){
                System.out.print(String.format("Row info: %s\n", rowData.getContents()));
                getContents.add(rowData.getContents());
            }
        }
    }catch (BiffException e) {
        e.printStackTrace();
    } catch (IOException e) {
        System.out.print("This is an exception!");
    } catch (NullPointerException np){
        System.out.print("File does not exist!");
    }return getContents;
}

例外的字符串只是占位符,而不是最终的。但我得到一个ArrayIndex ....例外。我确实理解了为什么我会收到错误,但是当行或行内容为空时,我试图明显地突破循环。我实施了一个条件

if(sheet.getRow(i) == null){
                break;
            }

但它仍然评估并提供相同的例外。我被困住了,希望你在没有内容时试图突破循环。谢谢

1 个答案:

答案 0 :(得分:0)

更改for(int i=0; i<sheet.getRow(i).length; i++)

为:

for(int i = 0; i < sheet.getRows(); i++){
    if(sheet.getRow(i) == null) break;

    //rest of the code
}

但是你确定要在空行上打破循环而不是继续下一行吗?