2016-06-28 60 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,如果您自己设法解决这个问题,您可以将自己的答案添加到解决方案中,甚至接受它 –

相关问题