我是groovy的新手,我正在尝试使用hashmap概念从soapUI中的excel驱动数据,但是我收到了一个错误:
MissingMethodException:没有方法签名:[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;
}
答案 0 :(得分:0)
您似乎混合使用org.apache.poi
和jxl
库来读取Excel文件。检查你的进口。在您使用的jxl
中,没有方法getLastCellNum()
和sheet.getRow()
返回单元格数组。
Sheet API doc。也许适合你将使用这样的东西:
for(int i=0;i<headerRow.getColumns();i++){
testData.put(sheet.getRow(keyRowNumber)[i].toString(), sheet.getRow(valueRowNumber)[i].toString());
}