[英]QTP Compare Webtable Row with Excel ROW
我有一個包含10行的Web表,並且Excel工作表中有一個包含100行數據的類似表。
我需要檢查Excel中是否存在10行Web表格數據,還需要打印ex的哪一行在此處輸入圖像描述 ,以匹配它。
您尚未提供有關Webtable的任何詳細信息,因此我假設它只有一列包含多行。如果它有多個,則初始化一個數組然后進行比較。 如果excel中的所有值都與webtable匹配,它將返回true。
Function Chktbl (coulmnname,sheetname,tblname)
Chktbl = True
Dim marray,excelop,weblistcount,l,m,k
l = datatable.LocalSheet.GetRowCount
For m = 1 To l
datatable.LocalSheet.SetCurrentRow m
excelop=trim(Datatable.Value(""&coulmnname,""&sheetname))
webcount = Browser("name:=.*").Page("title:=.*").Webtable("name:="&tblname).Rowcount
For k = 1 to webcount
marray = Browser("name:=.*").Page("title:=.*").Webtable("name:="&tblname).getcelldata (k,1)
If excelop= "" Then
Exit For
End If
If Ucase(excelop) = Ucase(trim(marray)) Then
Exit For
ElseIf k = webcount Then
reporter.ReportEvent micFail,"No match","Fail"
Chktbl = False
Exit For
End If
Next
下一個
結束功能
首先,將WebTable中的數據行讀入數組
Dim Table, CheckArray
Set Table = Browser("YourBrowser").Page("YourPage").WebTable("YourTable")
ReDim CheckArray(Table.RowCount - 1) ' Arrays index from 0, table rows from 1
For iLoop = 1 to Table.RowCount
CheckArray(iLoop-1) = Table.GetCellData(iLoop, 1)
Next
一旦有了該數組,就可以遍歷每個值並對照Excel表進行檢查。 有幾種方法可以實現此目的。
其中最小的復雜度為1,因此我將在此處詳細說明該方法:
Datatable.Import("YourExcelFilePathHere.xls", Global)
iRowsToCheck = DataTable.GetRowCount
For iLoop = 0 to Ubound(CheckArray)
bFound = False
For iSubLoop = 1 to iRowsToCheck
DataTable.SetCurrentRow(iSubLoop)
If CheckArray(iLoop) = Datatable.Value("ColumnName") Then
bFound = True
Exit For
End If
Next
If bFound Then
CheckArray(iLoop) = CheckArray(iLoop) & " was found"
Else
CheckArray(iLoop) = CheckArray(iLoop) & " was not found"
End If
Next
這將導入您的excel文件,並針對webtable數組中的每個元素在excel表中進行檢查。 如果找到,它將退出並將數組項標記為找到。 如果在未將bFound
設置為True的情況下bFound
,則找不到它並進行相應更新。
然后,您可以根據需要輸出數組的內容以獲取結果。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.