2016-06-28 101 views
0

我的代碼無法將數據保存到現有的excel文件中。我可以從它是從一個網表將數據複製到Excel工作表本地窗口看到,但無法保存details.Could請您正確的,如果我缺少這裏有什麼問題無法將webtable內容保存到qtp中的excel文件中

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

您是否考慮過將excel文件導入爲數據表格,使用可用的'Datatable'函數在UFT內更新它,然後將其導出?無論如何,要比創建excel對象簡單得多... – Dave

回答

1

我想,那是因爲你正在使用ActiveWorkbook方法。當您使用活動工作簿方法時,必須非常小心,沒有其他工作簿處於打開/活動狀態。

要避免所有這些,以下可能是更好的方法。

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 

讓我知道,如果它的工作原理。

+0

感謝您的參觀,但這並不是在excel表單上保存webtable的詳細信息 –

+1

我似乎已經發現了這裏的錯誤。我想在我的代碼中使用'sheet.cells(row,col)= data'。謝謝 –

+0

@nandeshkalyankar,如果您自己設法解決這個問題,您可以將自己的答案添加到解決方案中,甚至接受它 –

相關問題