直接读取Excel表格的function摘自此处http://www.51testing.com/html/40/307440-827863.html 特此感谢!
Excel作为QTP自动化测试的数据源,有两种方式可应用到脚本中
一、导入到DataTable中
1 ImportData("Login") 2 Function ImportData(SheetName) 3 DataTable.ImportSheet Environment.Value("TestDir")&"TestData.xls",SheetName,"Global" 4 End Function
说明:ImportSheet的第二个参数可用Sheet编号,从1开始
QTP11不支持word2007及以上的Excel文件(.xlsx)
二、使用Excel COM直接读取Excel
1 '======================================== 2 '名 称:QTP_ReadExcel 3 '作 用:从Excel读数据 4 '参 数:sFileName:EXCEL文件名 sSheetName:Sheet表名 5 '返回值:把EXCEL变为2维数组返回(第一行为数据表列名) 6 '======================================== 7 Function QTP_ReadExcel(sFileName,sSheetName) 8 Dim oExcel 9 Dim oSheet 10 Dim oRange 11 Dim arrRange 12 13 On Error Resume Next 14 ' 创建Excel应用程序对象 15 Set oExcel = CreateObject("Excel.Application") 16 If err.Number <> 0 Then 17 MsgBox "未能初始化Excel" & vbCrLf & "请确保Excel已安装", vbCritical 18 Exit Function 19 End If 20 On Error GoTo 0 21 22 On Error Resume Next 23 ' 打开Excel文件 24 oExcel.Workbooks.Open(sFileName) 25 If err.Number <> 0 Then 26 MsgBox "未能加载Excel文件" & vbCrLf & "请确保Excel文件路径正确或格式正确", vbCritical 27 Exit Function 28 End If 29 On Error GoTo 0 30 31 ' 获取表格的使用范围 32 Set oSheet = oExcel.Worksheets(sSheetName).UsedRange 33 ' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值 34 Set oRange = oSheet.Range("A1:Z1000") 35 '把Excel数据转换到数组 36 arrRange = oRange.Value 37 ' 关闭工作簿 38 oExcel.WorkBooks.Item(1).Close 39 40 ' 退出Excel 41 oExcel.Quit 42 Set oExcel = Nothing 43 ' 返回包含Excel数据的数组 44 QTP_ReadExcel = arrRange 45 End Function