使用for循环中的row.getlastcellnum()方法在Selenium中编写excel表会导致java.lang.IllegalArgumentException

时间:2017-03-18 12:01:05

标签: java selenium apache-poi

下面是我在secelium代码中写入数据在Excel工作表的第一个空列中:

public void setAllData(int sheetNumber)
    {
        sheet1 = wb.getSheetAt(sheetNumber);
        for(int i = 0; i<rowCount+1; i++)
        {
            row = sheet1.getRow(i);
            **int k = row.getLastCellNum();**
            **for(int j = row.getLastCellNum(); j<row.getLastCellNum()+1; j++)**
            **//for(int j = row.getLastCellNum(); j<k+1; j++)**
            {
                sheet1.getRow(i).createCell(j).setCellValue("Pass");
            }
        }
        try {
            FileOutputStream fos = new FileOutputStream(file);
            wb.write(fos);
        } catch (Exception e) {
            System.out.println(e.getMessage());
        } 
    }

当我使用for {循环使用j<row.getLastCellNum()+1时出现以下错误:“java.lang.IllegalArgumentException:无效的列索引(16384).EXCEL2007的允许列范围是(0..16383)或('A ” .. 'XFD')“

如果我将row.getLastCellNum()值存储在变量(k)中然后在for循环中使用该变量,那么它的工作正常。

1 个答案:

答案 0 :(得分:0)

getLastCellNum()

将返回总行数PLUS ONE。

请参阅API