致力于测试团队建设和自动化测试开发,欢迎有兴趣者一起研究讨论

QTP读取Excel数据的方法

上一篇 / 下一篇  2008-06-29 12:25:00 / 个人分类:QTP

在构建自己的测试框架时,或者是从Excel读入外部数据进行检查时都要用到Excel的COM对象编程方法,下面脚本中的ReadFile函数就实现了这样的功能,首先创建Excel应用程序对象,然后打开Excel文件,把Excel数据读取到一个数组中。51Testing软件测试网-j6v3V [7mwV^7x V)?7AP
 51Testing软件测试网3o7cA7xPg
arrRange = ReadFile("D:\QTP\MyWork\ReadExcelFileTest1\ObjectTree.xls","Tree")
v`z]N%fH0'Msgbox UBound (arrRange,1)
7i4E7y$~U0'Msgbox UBound (arrRange,2)
-l$L fR-k3h0G#uI0' 读取其中一个单元格的数据51Testing软件测试网 w z-N3n%b1Nz_-]/b ?
Msgbox arrRange(3,1)51Testing软件测试网x-X$Gt-v~;~"P
 51Testing软件测试网iVn4o x {
 51Testing软件测试网diX6VZEb g
' 输入:51Testing软件测试网 Mr)FY7R&Y
'             sFileName: Excel文件51Testing软件测试网2bs*r1rS
'             sSheetName:表单名称
2i"o$q])e.e0' 返回:51Testing软件测试网Tf k:[5U1CSNt
'             包含Excel数据的数组
_ X.})db'f1G v0Function ReadFile(sFileName,sSheetName)51Testing软件测试网#Gnlr.M:A
       Dim oExcel
"^ru{6K {0       Dim oSheet
)D)y(X@t| Eg c0       Dim oRange
1H\/Do2xy Zy0       Dim arrRange
!kni0rc7S-P_0 51Testing软件测试网 }1M0Gp/t~5h?
       On Error Resume Next
lG_ZtC_ k&m0           ' 创建Excel应用程序对象
HHfJ L @V`3U0              Set ōExcel = CreateObject("Excel.Application")
WH2zp8|]Yu0              If err.Number <> 0 Then
$N{/Z+\b-}l0                     MsgBox "未能初始化Excel" & vbCrLf & _
+A@!M/`_2l$u)f0                                 "请确保Excel已安装", vbCritical51Testing软件测试网-m H7BH*K*i!F
                     Exit Function51Testing软件测试网)m%kxz"SLJX8YTj~
              End If51Testing软件测试网3S6pO+~3}g
       On Error Goto 0
5nE RfN$t3i4w0                    51Testing软件测试网ACg g;f#@?9t
       On Error Resume Next51Testing软件测试网F0A3mh#H+^G
                     ' 打开Excel文件
&w5w BI$zFx0                     oExcel.Workbooks.Open(sFileName)
!k L[k.}$m Df0                  If err.Number <> 0 Then
2XSYa*KJ*Z0                            MsgBox "未能加载Excel文件" & vbCrLf & _
g6k,Ek8L,I0                                   "请确保Excel文件路径正确或格式正确", vbCritical51Testing软件测试网*CM5@f j Q
                            Exit Function51Testing软件测试网 K3Df\!Fz
                     End If
];Oxt:| p$f-m"Q0       On Error Goto 051Testing软件测试网HMAGs!O
      51Testing软件测试网 u?9v,kb
       ' 获取表格的使用范围51Testing软件测试网X+Ru:V;m^A6m#n
       Set ōSheet = oExcel.Worksheets(sSheetName).UsedRange51Testing软件测试网-f1\n,Vb Y6k3U
       ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
5K#\} |~(L0       Set ōRange = oSheet.Range("A1:Z1000")51Testing软件测试网%EI:kH)\ VA1sM
       '把Excel数据转换到数组
*yWQ3C`+j,YEy0       arrRange = oRange.Value51Testing软件测试网#w$^R+oC5A
       ' 关闭工作簿51Testing软件测试网u0g.E%_$d@
       oExcel.WorkBooks.Item(1).Close
5nFd)u2]3ZR(r0       ' 退出Excel51Testing软件测试网 o ~!v2r#i~0A8c2K
       oExcel.Quit51Testing软件测试网i_0d9y,C;|I
       Set ōExcel = Nothing
^(uO-R Z_/p^ V0    ' 返回包含Excel数据的数组
)cH/E}p&Q%QN!d0     ReadFile = arrRange51Testing软件测试网J7o'z,W&ENS S
End Function
9A gD3w`2S0

TAG: QTP

 

评分:0

我来说两句

日历

« 2024-04-30  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 91123
  • 日志数: 79
  • 图片数: 1
  • 建立时间: 2008-05-18
  • 更新时间: 2009-06-04

RSS订阅

Open Toolbar