2016-06-28 14 views
0

Mein Code speichert keine Daten in einer vorhandenen Excel-Datei. Ich kann von lokalen Fenster sehen, dass es Daten von einem webtable auf ein Excel-Blatt zu kopieren, kann aber nicht die details.Could sparen Sie richtig bitte, wenn ich etwas fehle hier falschInhalt von Webtable kann nicht in Excel-Datei gespeichert werden. Qtp

path = "D:\Demo\TestData\Shopping_Cart.xls" 

set xl= CreateObject("excel.application") 
xl.workbooks.open(path) 
set nsheet=xl.sheets.item(1) 

Set BrwsrCheckOut= Browser("name:=Checkout","title:=Checkout - Internet Explorer").page("title:=Checkout","name:=.*") 
Set DesPrdChcKOut = Description.Create 
DesPrdChcKOut("html tag").value = "TABLE" 
DesPrdChcKOut("column names").value = "Product Name;Model;Quantity;Price;Total" 

For IteratorRow = 1 To 2 

'BrwsrCheckOut.WebTable(DesPrdChcKOut).RowCount Step 1 
     For IteratorCol = 1 To 3 

     'BrwsrCheckOut.WebTable(DesPrdChcKOut).ColumnCount(1) Step 1 

    val = BrwsrCheckOut.WebTable(DesPrdChcKOut).GetCellData(IteratorRow, IteratorCol) 

    Next 

Next 
'xl.Activeworkbook.saveAs "D:\Demo\TestData\Shopping_Cart.xls" 
xl.Activeworkbook.save 
nsheet.SaveAs("D:\Demo\TestData\Shopping_Cart.xls") 
xl.ActiveWorkbook.Close 



Set xl = nothing 
Set nsheet = nothing 
+0

Haben Sie darüber nachgedacht, die Excel-Datei als Datentabelle zu importieren, sie innerhalb von UFT mit den verfügbaren 'Datatable'-Funktionen zu aktualisieren und dann wieder zu exportieren? Wahrscheinlich einfacher als das Erstellen von Excel-Objekten ... – Dave

Antwort

1

Ich denke, es ist, weil Sie ist verwenden die ActiveWorkbook-Methode. Wenn Sie die Methode der aktiven Arbeitsmappe verwenden, müssen Sie sehr vorsichtig sein, dass keine andere Arbeitsmappe geöffnet/aktiver Status ist.

Um all dies zu vermeiden, könnte das Folgende ein besserer Ansatz sein.

Beispiel

path = "D:\Demo\TestData\Shopping_Cart.xls" 
Set oxl = CreateObject("Excel.Application") 
Set wbk = oxl.workbooks.open(path) 
sheetname = "Output" ' You can also refer the sheet by index 
Set sheet = wbk.sheets(sheetname) 

'Logic to retreive the data from webtable 
for i=1 to number_of_rows 
    ' update the data in excel 
next 

'Save the workbook 
wbk.save 
wbk.close 
oxl.quit 

Lassen Sie mich wissen, ob es funktioniert.

+0

Vielen Dank für einen Blick, aber das spart nicht noch Webtable Details auf Excel-Blatt –

+1

Ich habe den Fehler hier herausgefunden. Ich werde 'sheet.cells (row, col) = data' in meinem Code verwenden. Danke –

+0

@nandeshkalyankar, können Sie Ihre eigene Antwort auf die Lösung hinzufügen und sogar akzeptieren, wenn Sie es schaffen, dies selbst zu lösen –