QTP数据驱动之读取Excel数据
这个代码的原理是把Excel的数据当做数据库里的数据一样处理,可以对Excel用select来检索需要的数据,然后把数据以键值对的形式保存到oDict里,方便在用例层来调用
Class oDataDic
Private oDic
Public oWorkBookPath
Public oSheetName
Public oRowNo
Private Sub Class_Initialize
'oWorkBookPath = getTestDataFromQC_QTP("业务系统测试数据")
oWorkBookPath = Environment.Value("ProductDir") & "\业务系统测试数据.xls" 'strTestDataPath
End Sub
Public Default Function Load(oSheetName, oRowNo)
With Me
.oWorkBookPath = oWorkBookPath
.oSheetName = oSheetName
.oRowNo = oRowNo
End With
BuildContext
Set Load = oDic
End Function
Public Function GetExcelRecordCount(oSheetName, CaseNO)
Dim oConn, oRS, arrData, x
Set oConn = CreateObject("ADODB.Connection")
Set oRS = CreateObject("ADODB.RecordSet")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & oWorkBookPath & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
If IsNumeric(CaseNO) Then
sQuery = "select * from [" & oSheetName & "$]" & " where 测试用例编号 = " & CaseNO
else
sQuery = "select * from [" & oSheetName & "$]" & " where 测试用例名称 = " & "'" & CaseNO & "'"
End If
oRS.Open sQuery, oConn, , ,
' rows = oRS.Index
GetExcelRecordCount = oRS.RecordCount
' num = oRS.GetRows
' Dim x
' For x= 2 To oRS.RecordCount + 1
' If CStr(oRS.Fields(0)) = CaseNO Then
' msgbox x
' CStr(oRS.Fields(1))
' Exit For
' Else
' oRS.MoveNext
' End If
' Next
' Set oDic = CreateObject("Scripting.Dictionary")
'
' For x = 0 To oRS.Fields.Count - 1
' With oDic
' .Add "" & oRS(x).Name, "" & oRS.Fields(x)
' End With
' Next
'
' Set GetExcelRecordCount = oDic
End Function
Public Function LoadExcelRecord(oSheetName, CaseNO, oRowNo)
' On Error Resume Next
Dim oConn, oRS, arrData, x
Set oConn = CreateObject("ADODB.Connection")
Set oRS = CreateObject("ADODB.RecordSet")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & oWorkBookPath & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
If IsNumeric(CaseNO) Then
sQuery = "select * from [" & oSheetName & "$]" & " where 测试用例编号 = " & CaseNO
else
sQuery = "select * from [" & oSheetName & "$]" & " where 测试用例名称 = " & "'" & CaseNO & "'"
End If
oRS.Open sQuery, oConn, , ,
' For x= 2 To oRS.RecordCount + 1
' If CStr(oRS.Fields(0)) = CaseNO Then
' msgbox x
' CStr(oRS.Fields(1))
' Exit For
' Else
' oRS.MoveNext
' End If
' Next
For x= To oRowNo - : oRS.MoveNext : Next
Set oDic = CreateObject("Scripting.Dictionary")
For x = To oRS.Fields.Count -
With oDic
.Add "" & oRS(x).Name, "" & oRS.Fields(x)
' .Add cstr(oRS(x).Name), cstr(oRS.Fields(x))
End With
Next
Set LoadExcelRecord = oDic
End Function
Private Function BuildContext
Dim oConn, oRS, arrData, x
Set oConn = CreateObject("ADODB.Connection")
Set oRS = CreateObject("ADODB.RecordSet")
oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & Me.oWorkBookPath & ";" & _
"Extended Properties=""Excel 8.0;HDR=Yes;"";"
sQuery = "select * from [" & Me.oSheetName & "$]"
oRS.Open sQuery, oConn, , ,
For x= To oRowNo - : oRS.MoveNext : Next
Set oDic = CreateObject("Scripting.Dictionary")
For x = To oRS.Fields.Count -
With oDic
.Add "" & oRS(x).Name, "" & oRS.Fields(x)
' .Add cstr(oRS(x).Name), cstr(oRS.Fields(x))
End With
Next
' Set oDic = Nothing
' Set oRS = Nothing
' Set oConn =Nothing
End Function
' Private Property Let oDic(ByVal val)
' Set oDic = val
' End Property
'
' Private Property Get oDic()
' Set oDic = oDic
' End Property
End Class
Set mDataContext = New oDataDic
QTP数据驱动之读取Excel数据的更多相关文章
- java的poi技术读取Excel数据到MySQL
这篇blog是介绍java中的poi技术读取Excel数据,然后保存到MySQL数据中. 你也可以在 : java的poi技术读取和导入Excel了解到写入Excel的方法信息 使用JXL技术可以在 ...
- .NET读取Excel数据,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序
解决.NET读取Excel数据时,提示错误:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序的操作: 1. 检查本机是否安装Office Access,如果未安装去去h ...
- oledbdataadapter 读取excel数据时,有的单元格内容不能读出
表现:excel中某列中,有的单元格左上角有绿色箭头标志,有的没有,c#编写读取程序,但是只能读取出带绿色箭头的单元格中的内容,其余不带的读取不到内容 原因:excel中单元格因为是文本格式而存储了数 ...
- Openxml入门---Openxm读取Excel数据
Openxml读取Excel数据: 有些问题,如果当Cell 里面是 日期和浮点型的话,对应的Cell.DataType==Null,对应的时间会转换为一个浮点型,对于这块可以通过DateTime.F ...
- C# 读取EXCEL数据
/// <summary> /// 读取EXCEL数据 /// </summary> /// <param name="Path">< ...
- JAVA反射机制示例,读取excel数据映射到JAVA对象中
import java.beans.PropertyDescriptor; import java.io.File; import java.io.FileInputStream; import ja ...
- Python读取Excel数据并根据列名取值
一直想将自己接触到的东西梳理一遍,可就是迈不出第一步,希望从这篇总结开始不要再做行动的矮人了. 最近测试过程中需要用到python读取excel用例数据,于是去了解和学习了下xlrd库,这里只记录使用 ...
- jxl读写excel, poi读写excel,word, 读取Excel数据到MySQL
这篇blog是介绍: 1. java中的poi技术读取Excel数据,然后保存到MySQL数据中. 2. jxl读写excel 你也可以在 : java的poi技术读取和导入Excel了解到写入Exc ...
- Delphi中使用python脚本读取Excel数据
Delphi中使用python脚本读取Excel数据2007-10-18 17:28:22标签:Delphi Excel python原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 . ...
随机推荐
- Shell 总结
find: –name 'filenme' * ? [] ; –iname; –regex PATTERN; –user username; –group; –uid; –gid; –nouser; ...
- c++数组-矩阵的转置
#include <iostream> using namespace std; int main(){ ][]={{,,},{,,}}; ][]; ;j<;j++){ ;i< ...
- java 进制转化
public static void toBinary(int num){ trans(num,1,1); } public static void toHex(int num){ trans(num ...
- Scene (场景视图) 详解
控制二维切换的按钮 点击2D按钮可以激活2D模式.这个按钮会将场景相机在透视视图和正交投影视图之间进行切换.当观察透视视图时,远离相机的物体看起来更小:然而,当正交投影视图的时候,物体的大小并不受相机 ...
- (译)iOS Code Signing: 解惑
子龙山人 Learning,Sharing,Improving! (译)iOS Code Signing: 解惑 免责申明(必读!):本博客提供的所有教程的翻译原稿均来自于互联网,仅供学习交流之用,切 ...
- Daily Scrum 11.12
摘要:本次会议继续讨论程序的问题以及单元测试和集成测试,本次测试为终审,并且本次得到的为alpha版本的最终版本.本次的Task列表如下: Task列表 出席人员 Today's Task Tomor ...
- 怎么让LinearLayout充满ScrollView
ScrollView里只能放一个元素. 当ScrollView里的元素想填满ScrollView时,使用"fill_parent"是不管用的,必需为ScrollView设置: ...
- switch..case函数的基础使用一
基本作用:switch中的参数与case的值进行比对,相等则进入case. JDK1.7 switch支持int.Integer.String类型 package com.my.test; impor ...
- 给定一个数组A[0,1,...,n-1],请构建一个数组B[0,1,...,n-1],其中B中的元素B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]*...*A[n-1]。不能使用除法。
// test14.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include<iostream> #include< ...
- 将Windows上的文件上传到Linux上
下载一个SSH Secure Shell Client即可. SSHSecureShellClient-3.2.9下载地址: 免费下载地址在 http://linux.linuxidc.com/ 用户 ...