这是代码的全部。
for (int i = 0; i <= 1; i++, column++, row++) {
// read cell, input coordinates: (column, row)
Cell c1 = sh1.getCell(column, row);
Cell c2 = sh1.getCell(column + 1, row);
Cell c3 = sh1.getCell(column + 2, row);
Cell c4 = sh1.getCell(column + 3, row);
// return string content
String locationCode = c1.getContents();
String locationName = c2.getContents();
String description = c3.getContents();
String address = c4.getContents();
driver.findElement(By.id("tab7")).click();
driver.findElement(By.id("subtab2")).click();
driver.findElement(By.id("new")).click();
driver.findElement(By.id("ExtLocationCode")).clear();
driver.findElement(By.id("ExtLocationCode")).sendKeys(locationCode);
driver.findElement(By.id("LocationName")).clear();
driver.findElement(By.id("LocationName")).sendKeys(locationName);
driver.findElement(By.id("Description")).clear();
driver.findElement(By.id("Description")).sendKeys(description);
driver.findElement(By.id("address1")).clear();
driver.findElement(By.id("address1")).sendKeys(address);
driver.findElement(By.id("save")).click();
driver.findElement(By.id("actions")).click();
driver.findElement(By.id("save")).click();
}
运行它之后,它说:线程“主”中的异常java.lang.ArrayIndexOutOfBoundsException:4
并且不会继续处理excel文件中单元格的下一行和下一行。我的代码有什么问题?
最佳答案
您将在for循环定义中增加列,然后执行以下操作:
Cell c1 = sh1.getCell(column,row);
Cell c2 = sh1.getCell(column+1,row);
Cell c3 = sh1.getCell(column+2,row);
Cell c4 = sh1.getCell(column+3,row);
我认为您不需要在for循环定义
for(int i = 0; i<=1; i++, column++, row++)
中增加列除非您有一个非常奇怪的excell工作表布局。尝试
for(int i = 0; i<=1; i++, row++)