我是 groovy 的新手,我正在尝试使用哈希映射概念在 soapUI 中从 excel 驱动数据,但我收到一个错误:
MissingMethodException: no signature of method: [Ljxl.Cell;.getLastCellNum(( 适用于参数类型:(( 值:[]
如何在 groovy 中获取连续最后一个单元格的值?
这是我的代码:
public static Map<String,String> getTestDataMap(int keyRowNumber,int valueRowNumber){
Map<String,String> testData=new HashMap<String, String>();
FileInputStream excelFile;
try {
Workbook wb = Workbook.getWorkbook(new File('C:/Users/aparnam/Desktop/AmazonTestData.xls'))
Sheet sheet = wb.getSheet("Queries")
def headerRow = sheet.getRow(keyRowNumber);
for(int i=0;i<headerRow.getLastCellNum();i++){
testData.put(sheet.getRow(keyRowNumber).getCell(i).toString(), sheet.getRow(valueRowNumber).getCell(i).toString());
}
} catch (FileNotFoundException e) {
System.out.println("Test Data file Not found"+e.getMessage());
}
catch (IOException e) {
System.out.println("unable to read excel file"+e.getMessage());
}
return testData;
}
似乎您混合了org.apache.poi
和jxl
库来读取 excel 文件。检查您的进口。在您使用jxl
中,没有方法getLastCellNum()
sheet.getRow()
返回单元格数组。工作表 API 文档。也许适合您使用这样的东西:
for(int i=0;i<headerRow.getColumns();i++){
testData.put(sheet.getRow(keyRowNumber)[i].toString(), sheet.getRow(valueRowNumber)[i].toString());
}