2016-05-06 15 views
0

Excelテーブルに10行のデータと100行のWebテーブルがあります。QTP Webtable RowとExcel ROWを比較

webtableデータの10行がExcelに存在するかどうかを確認する必要があります。また、exc enter image description here elに一致する行を印刷する必要があります。

+0

解決策を見つけようとしたことはありますか? –

答えて

0

Webtableの詳細を提供していないので、複数のrows.ifが複数の列を持っていて、それを比較していると仮定しています。 Excelのすべての値がウェブテーブルと一致する場合は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 

エンド機能

+0

私はExcelとWebテーブルのスナップを添付して見て...実際には、Webテーブルの第1行を取得し、Excelの行と一致する必要があります。 – naveen

0

まず、あなたはそれぞれの値によって、この配列することができますループを持っていたら、配列に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. 直接ウェブテーブルの値がCOM経由
  2. アクセスファイルを存在するかどうかを確認するためにSQLを使用してファイルを照会データテーブルとして、Excelの表をロードし、試合
  3. を探して行を繰り返し処理ExcelのFind機能を使用してデータを検索します。

これらの最も複雑では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配列の各要素について、でそれをチェックテーブルを席巻する。見つかった場合、それは終了し、配列項目を見つかったものとしてマークします。 bFoundをTrueに設定せずに完了すると、それは見つからず、それに応じて更新されます。

あなたの結果を得るためにあなたの配列の内容を出力することができます。