致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论
QTP读取Excel数据的方法
上一篇 /
下一篇 2008-06-29 12:25:00
/ 个人分类:QTP
在构建自己的
测试框架时,或者是从Excel读入外部数据进行检查时都要用到Excel的COM对象编程方法,下面脚本中的ReadFile函数就实现了这样的功能,首先创建Excel应用程序对象,然后打开Excel文件,把Excel数据读取到一个数组中。
!E
A`
W F P#Q0 51Testing软件测试网6nA5L;Qt$G5Pu]arrRange = ReadFile("D:\QTP\MyWork\ReadExcelFileTest1\ObjectTree.xls","Tree")
D:b.B'v
a'X'v/z0'Msgbox UBound (arrRange,1)
!AY"ES@.D+C/c;?Lu0'Msgbox UBound (arrRange,2)
*I
O0Z!sp)|$B0' 读取其中一个单元格的数据
51Testing软件测试网6il3yC|L6AMsgbox arrRange(3,1)
51Testing软件测试网;pj*Iw?Y x *b&j9UU7Ne0 51Testing软件测试网n tH-aX'Tz' 输入:
51Testing软件测试网2ftu
N#v"@~/E#\8@' sFileName: Excel文件
51Testing软件测试网!]j8oZ1_'P' sSheetName:表单名称
t%e.Rc$|!I0' 返回:
;wDo
~%{0' 包含Excel数据的数组
+b|
BK T#C0Function ReadFile(sFileName,sSheetName)
IQ2VH*I,]
d.iRx0 Dim oExcel
W"pN1ph-m'k0 Dim oSheet
51Testing软件测试网m
BcRC'E/a Dim oRange
F7^;}
F9T,IpO0 Dim arrRange
51Testing软件测试网HQ2jx d+wm 51Testing软件测试网3@+om^X I On Error Resume Next
-xe sG#u2d0 ' 创建Excel应用程序对象
{a,Q"yoo0 Set ōExcel = CreateObject("Excel.Application")
51Testing软件测试网^XI;x$h(Y!d If err.Number <> 0 Then
51Testing软件测试网6z5bta\/]7I"D3I MsgBox "未能初始化Excel" & vbCrLf & _
51Testing软件测试网c0A](@0AT]s1U$B "请确保Excel已安装", vbCritical
51Testing软件测试网&@A`(F9o}@+C h!V){ Exit Function
/d
C2b`cp0 End If
51Testing软件测试网,O.nd5^#Ys\'Z!K4N On Error Goto 0
S|2u$\RceQY0 51Testing软件测试网3pS\&IF On Error Resume Next
51Testing软件测试网)@"?gkB%S:C ' 打开Excel文件
*iw4M'o!xe,}0 oExcel.Workbooks.Open(sFileName)
51Testing软件测试网'R.k&s2q+{"c If err.Number <> 0 Then
51Testing软件测试网:[c0O:c2c MsgBox "未能加载Excel文件" & vbCrLf & _
3IEx!mXW6s)|
G0 "请确保Excel文件路径正确或格式正确", vbCritical
51Testing软件测试网NZyRpEZT? Exit Function
51Testing软件测试网LCi%p;Y Hfxw End If
sQCw9Dn'F f+G0 On Error Goto 0
51Testing软件测试网6I!nd
M1lI'~'^E2l 51Testing软件测试网KMb*Hf ' 获取表格的使用范围
2Q#~?j/JI0 Set ōSheet = oExcel.Worksheets(sSheetName).UsedRange
51Testing软件测试网.Z0X(hOe#P#^ ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
&jYY!d/y1B_a0 Set ōRange = oSheet.Range("A1:Z1000")
51Testing软件测试网3^%V`$c%R]!\m)| '把Excel数据转换到数组
51Testing软件测试网9H^_7kF'JBx arrRange = oRange.Value
51Testing软件测试网h4f&tK&d z6N0y ' 关闭
工作簿
z`Y+S(w;_jXGWG0 oExcel.WorkBooks.Item(1).Close
51Testing软件测试网h [0I~a8[2`?8Q
}| ' 退出Excel
51Testing软件测试网?*\ bbE&c@ oExcel.Quit
51Testing软件测试网
PtW'ua Set ōExcel = Nothing
51Testing软件测试网H7Mh.qktM*^\ ' 返回包含Excel数据的数组
51Testing软件测试网S\l{1D+e)O ReadFile = arrRange
-|N1a#_Lq0End Function
51Testing软件测试网8\M6H\2]
收藏
举报
TAG:
QTP