新手初学 有什么不对的地方请指出
对于Excel表和datatable的基础知识点应用 代码仅供参考,应为我是用的WPS啊!!! 坑爹的,公司不准装office 。
QTP对于WPS的支持度不高 ,我暂时没找到如何自动创建WPS的Excel 所以是手动在桌面创建的需要的Excel环境。
话不多说 上例子吧
首先题目
有一个瓶子放入2只虫子 2只虫子同时不停的循环分裂 1分2 2分4这样 当虫子分裂到装满瓶子时 停止
模拟需求:
1:我们需要拿到每次分裂数量放入Excel表内全部显示
2:拿另一份Excel表内的数值做对比 当然 另一份表的内容需要我们自己填
3:对比结束时 Excel表内显示正确的数值 并且 2份表内有不一样的地方 显示出不一样数值
配置需要的条件
1:datatable内写入3个参数2只虫子的基数各为1只所以往 Global A,B列下填入基础数值1,还有一个瓶子 这个瓶子的装满数量我们就随便输入一个1000就可以了
2:应为使用的是WPS不知道怎么自动创建文档 只能手动了 ,好想吐槽啊!! 在桌面创建一个Excel表 我的表名为 Flc_1 这个是用来存入正确数据的 再创建一个叫flc表 表的格式要和前面一个一样 数据随便填好了
(1)自己写的Excel表 如果QTP想读取到数据,必须在每列的第一行写入列名,并不是Excel上面已经写好的ABCD这种 QTP往Excel表内写入则不用写
(2)表里的Sheet名要跟QTP内Sheet名一致 要不然会出一些奇怪的问题
3:在datatable创建Action1,Action2两个表,用于存储临时数据,这步其实很省掉,但是是个知识点 所以还是加上了
上实例
'设置一个数组用来添加2个数0据
Dim arrArray(2)
Dim c1,c2
Dim arrNew
Dim arrcount
Dim arr_1
Dim arr
Dim count
count=DataTable.GetRowCount
arrcount=cint(DataTable.Value(3,"Global"))
DataTable.localsheet.AddParameter "错误报告",""
DataTable.LocalSheet.AddParameter "错误数据",""
mian()
shuju()
Function flc(arrArray_1)
'当数组内数值小于1时才执行从Datatable内读取数据
If arrArray(0)<1 Then
arrArray(0)=DataTable.Value(1,"Global")
arrArray(1)=DataTable.Value(2,"Global")
End If
'分裂虫
arrArray(0)=arrArray(0)*2
arrArray(1)=arrArray(1)*2
'返回数组
flc=arrArray
End Function
'保存到Data
Function panduan
DataTable.GetSheet("Action1").SetCurrentRow(count)
MsgBox " A= " &arrNew(0) &" B=" &arrNew(1)
DataTable.Value("A","Action1")=arrNew(0)
DataTable.Value("B","Action1")=arrNew(1)
arr=arrNew(0)+arrNew(1)
DataTable.Value("C","Action1")= arr
count=count+1
End Function
'做数据对比
Function shuju
Dim age(100)
Dim age_1(100)
a= "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"
b= "C:\Documents and Settings\Administrator\桌面\flc.xls"
'导入指定的sheet
DataTable.ImportSheet a,"Action1","Action2"
DataTable.ImportSheet b,"Action1","Action1"
count=DataTable.GetSheet("Action1").GetRowCount
MsgBox count
For i = 1 To count Step 1
DataTable.GetSheet("Action2").SetCurrentRow(i)
age(i)=DataTable.GetSheet("Action1").GetParameter("C").ValueByRow(i)
age_1(i)=DataTable.GetSheet("Action2").GetParameter("C").ValueByRow(i)
MsgBox "age=" &age(i) &" age_1=" &age_1(i)
If age(i)=age_1(i) Then
DataTable.Value("错误报告","Action2")="Pass"
else
DataTable.Value("错误报告","Action2")="Ng"
DataTable.Value("错误数据","Action2")=age(i)
End If
Next
DataTable.Export "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"
End Function
'主结构
Function mian
While arrcount>0
arrNew =flc(arrNew)
panduan()
If arr >= arrcount Then
arrcount=0
End If
'保存到一个excel里面
DataTable.Export "C:\Documents and Settings\Administrator\桌面\Flc_1.xls"
Wend
End Function
最后在Excel的显示结果