对于QTP自动的usingExcel.vbs文件进行了相关的整理,使其更加适合自己的使用:
QC 运行 QTP 脚本是不带参数的,因此当我们构建自己的框架,需要灵活配置一些东西的时候,需要在QTP中读取外部文件,清除和准备数据时需要操作数据库。
下面是简单实现代码,适用于10.0.
1,如何读取Excel (陈能技博客转)
所在机器必须安装Excel
arrRange = ReadFile("c:\1.xls","Sheet1")
'Msgbox UBound (arrRange,1)
'Msgbox UBound (arrRange,2)
' 读取其中一个单元格的数据
Msgbox arrRange(1,1)
Function ReadFile(sFileName,sSheetName)
Dim oExcel
Dim oSheet
Dim oRange
Dim arrRange
On Error Resume Next
' 创建Excel应用程序对象
Set oExcel = CreateObject("Excel.Application")
If err.Number <> 0 Then
MsgBox "未能初始化Excel" & vbCrLf & _
"请确保Excel已安装", vbCritical
Exit Function
End If
On Error Goto 0
On Error Resume Next
' 打开Excel文件
oExcel.Workbooks.Open(sFileName)
If err.Number <> 0 Then
MsgBox "未能加载Excel文件" & vbCrLf & _
"请确保Excel文件路径正确或格式正确", vbCritical
Exit Function
End If
On Error Goto 0
' 获取表格的使用范围
Set oSheet = oExcel.Worksheets(sSheetName).UsedRange
' 获取从A列到Z列,从第1行到第1000行的范围i中的所有值
Set oRange = oSheet.Range("A1:Z1000")
'把Excel数据转换到数组
arrRange = oRange.Value
' 关闭工作簿
oExcel.WorkBooks.Item(1).Close
' 退出Excel
oExcel.Quit
Set oExcel = Nothing
' 返回包含Excel数据的数组
ReadFile = arrRange
End Function
2,自己写的一个脚本
Function openAndWriteExcel(path,x,y,values)
Dim excelapp,fso
Set excelapp=CreateObject("Excel.Application")
Set fso=CreateObject("scripting.filesystemobject")
If fso.FileExists(filepath)Then
excelapp.Visible=False
Set xlswork=excelapp.Workbooks.Open(path)
Set xlssheet=xlswork.Sheets("sheet1")
xlssheet.cells(x,y)=values
xlswork.Save
xlswork.Close
Set excelapp=Nothing
Else
Exit function
End If
End Function
'openAndWriteExcel "d:\maybe.xlsx",1,1,"abcziptestdddddddddddddddd"
Function getCellDatas(path,x,y)
Set excelapp=CreateObject("Excel.Application")
excelapp.Visible=false
Set xlswork=excelapp.Workbooks.Open(path)
Set xlssheet=xlswork.Sheets("sheet1")
values=xlssheet.cells(x,y)
getCellDatas=values
xlswork.Save
xlswork.Close
Set excelapp=Nothing
MsgBox "successbox"
End Function
'MsgBox(getCellDatas("d:\maybe.xlsx",1,1))