通过在“file>settings>resource”中添加外部excel文件,我们可以将该外部数据文件作为data table使用。且不会在默认的Defualt.xls中存储。
Dim i
'获取行数
For i=1 todatatable.GetSheet("Sheet1").GetRowCount
Browser("币种").Page("币种").Frame("Container_FrameBody").WebElement("新建").Click
Browser("币种").Page("币种").Frame("Container_FrameDynamicSidebar").WebEdit("Code:C").Click
'Browser("币种").Page("币种").Frame("Container_FrameDynamicSidebar").WebEdit("Code:C").Set"ABC"
'此处ABC为手动录制时的结果,将ABC换为Excel中的数据
Browser("币种").Page("币种").Frame("Container_FrameDynamicSidebar").WebEdit("Code:C").SetDataTable("Code", Sheet1)
'DataTable("Code", dtLocalSheet)也可写为DataTable.value("Code", dtLocalSheet)
Next
第二种方法:直接编写脚本,使datatable读取已有的excel中的数据,此中方法不识别xlsx格式的excel文件。
Option explicit
Dim rowcount
Dim filepath
Dim i,name1,Grade
'可使用相对路径找出相应的表,但要求test1和action1在同一个目录下,否则相对路径需做相应修改
filepath=pathfinder.Locate("test1.xls")
datatable.Import filepath
'也可直接使用绝对路径引用excel表
'datatable.Import("C:\Documents and Settings\Administrator\桌面\test1.xls")
rowcount=datatable.GetRowCount
For i=0 to rowcount-1
datatable.GetCurrentRow
name1=datatable.Value("Name")
Grade=datatable.Value("Grade")
datatable.SetNextRow
If datatable.GetCurrentRow>rowcount Then
Exit for
End If
两种方法比较:
第一种方法是通过在QTP的Data Table中直接导入脚本运行后表中数据一直都保存在action表中。
第二种方法是直接在运行中引用外部的excel表,且xlsx格式的不识别,运行结束后不会写入到action表中。也可使用importsheet函数实现
三、利用EOM模型直接对excel中的数据进行调用
Dim fso, filePath, i
Dim ExcelBook, ExcelSheet, myExcelBook, myExcelSheet
Dim celldata
'指定参数文件路径
filePath = "C:\Documents and Settings\Administrator\桌面\Mysheet.xls"
Set fso = CreateObject("Scripting.FileSystemObject")
Set ExcelBook = CreateObject("Excel.Application")
Set ExcelSheet = CreateObject("Excel.Sheet")
Set myExcelBook = ExcelBook.WorkBooks.Open(filePath)
Set myExcelSheet = myExcelBook.WorkSheets("Global")
celldata = MyExcelSheet.Cells(1,14)
For i = 2 to celldata
NodeName = myExcelSheet.Cells(i,1)
Msgbox NodeName
NodeType = myExcelSheet.Cells(i,2)
NodeAreaCode = myExcelSheet.Cells(i,8)
Browser("肉类蔬菜流通追溯业务系统").Page("肉类蔬菜流通追溯业务系统").Frame("mainFrame").WebEdit("nodeName").Set NodeName
Browser("肉类蔬菜流通追溯业务系统").Page("肉类蔬菜流通追溯业务系统").Frame("mainFrame").WebList("nodeTypeId").Select NodeType
……
myExcelSheet.Cells(i,12)= "通过"
ExcelBook.ActiveWorkbook.Save
MyExcelBook.close
Set MyExcelSheet = Nothing
ExcelBook.Quit
Set ExcelBook = Nothing
优点:调用起来更简单,直接,更改数据也比较方便,这样可以更好的利用excel的相关函数和统计功能。