QTP调用Excel中的数据-手动和自动
2012-09-22
16:45:33|分类:STUDY|标签:|字号大中小订阅
第一种方法:手动将Excel表加入QTP的datatable中,然后在代码中调用数据。
通过在“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
Next
比较:
第一种方法是通过在QTP的Data Table中直接导入脚本运行后表中数据一直都保存在action表中。
第二种方法是直接在运行中引用外部的excel表,且xlsx格式的不识别,运行结束后不会写入到action表中。也可使用importsheet函数实现