QTP操作Excel.docx
《QTP操作Excel.docx》由会员分享,可在线阅读,更多相关《QTP操作Excel.docx(12页珍藏版)》请在冰豆网上搜索。
QTP操作Excel
QTP操作Excel
QTP Excel函数操作EXCEL数据表格表单编辑EXCEL 工作表
DimExcelApp 'AsExcel.Application
DimexcelSheet'AsExcel.worksheet
DimexcelBook 'AsExcel.workbook
Dimfso 'Asscrīpting.FileSystemObject
'*********************************************************************************************
'函数说明:
创建一个Excel应用程序ExcelApp,并创建一个新的工作薄Workbook;
'参数说明:
无
'调用方法:
' CreateExcel()
'*********************************************************************************************
FunctionCreateExcel()
DimexcelSheet
SetExcelApp=CreateObject("Excel.Application")
ExcelApp.Workbooks.Add
ExcelApp.Visible=True
SetCreateExcel=ExcelApp
EndFunction
'*********************************************************************************************
'函数说明:
关闭Excel应用程序;
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'调用方法:
' CloseExcel(ExcelApp)
'*********************************************************************************************
SubCloseExcel(ExcelApp)
SetexcelSheet=ExcelApp.ActiveSheet
SetexcelBook=ExcelApp.ActiveWorkbook
Setfso=CreateObject("scrīpting.FileSystemObject")
OnErrorResumeNext
fso.CreateFolder"C:
\Temp"
fso.DeleteFile"C:
\Temp\ExcelExamples.xls"
excelBook.SaveAs"C:
\Temp\ExcelExamples.xls"
ExcelApp.Quit
SetExcelApp=Nothing
Setfso=Nothing
Err=0
OnErrorGoTo0
EndSub
'*********************************************************************************************
'函数说明:
保存工作薄;
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)workbookIdentifier:
属于ExcelApp的工作薄名称;
' (3)path:
保存的路径;
'返回结果:
'
(1)保存成功,返回字符串:
OK
'
(2)保存失败,返回字符串:
BadWorksheetIdentifier
'调用方法:
' ret=SaveWorkbook(ExcelApp,"Book1","D:
\Example1.xls")
'*********************************************************************************************
FunctionSaveWorkbook(ExcelApp,workbookIdentifier,path)'AsString
Dimworkbook
OnErrorResumeNext'启用错误处理程序
Setworkbook=ExcelApp.Workbooks(workbookIdentifier)
OnErrorGoTo0 '禁用错误处理程序
IfNotworkbookIsNothingThen
Ifpath=""Orpath=workbook.FullNameOrpath=workbook.NameThen
workbook.Save
Else
Setfso=CreateObject("scrīpting.FileSystemObject")
'判断路径中是否已添加扩展名.xls
IfInStr(path,".")=0Then
path=path&".xls"
EndIf
'删除路径下现有同名的文件
OnErrorResumeNext
fso.DeleteFilepath
Setfso=Nothing
Err=0
OnErrorGoTo0
workbook.SaveAspath
EndIf
SaveWorkbook="OK"
Else
SaveWorkbook="BadWorkbookIdentifier"
EndIf
EndFunction
'*********************************************************************************************
'函数说明:
设置工作表excelSheet单元格的值
'参数说明:
'
(1)excelSheet:
工作表名称;
'
(2)row:
列的序号,第一列为1;
' (3)column:
行的序号,第一行为1;
' (4)value:
单元格要设置的值;
'返回结果:
' 无返回值
'调用方法:
' SetCellValueexcelSheet1,1,2,"test"
'*********************************************************************************************
SubSetCellValue(excelSheet,row,column,value)
OnErrorResumeNext
excelSheet.Cells(row,column)=value
OnErrorGoTo0
EndSub
'TheGetCellValuereturnsthecell'svalueaccordingtoitsrowcolumnandsheet
'excelSheet-theExcelSheetinwhichthecellexists
'row-thecell'srow
'column-thecell'scolumn
'return0ifthecellcouldnotbefound
'*********************************************************************************************
'函数说明:
获取工作表excelSheet单元格的值
'参数说明:
'
(1)excelSheet:
工作表名称;
'
(2)row:
列的序号;
' (3)column:
行的序号;
'返回结果:
'
(1)单元格存在,返回单元格值;
'
(2)单元格不存在,返回0;
'调用方法:
' setCellValue=GetCellValue(excelSheet,1,2)
'*********************************************************************************************
FunctionGetCellValue(excelSheet,row,column)
value=0
Err=0
OnErrorResumeNext
tempValue=excelSheet.Cells(row,column)
IfErr=0Then
value=tempValue
Err=0
EndIf
OnErrorGoTo0
GetCellValue=value
EndFunction
'*********************************************************************************************
'函数说明:
获取并返回工作表对象
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)sheetIdentifier:
属于ExcelApp的工作表名称;
'返回结果:
'
(1)成功:
工作表对象Excel.worksheet
'
(1)失败:
Nothing
'调用方法:
' SetexcelSheet1=GetSheet(ExcelApp,"SheetName")
'*********************************************************************************************
FunctionGetSheet(ExcelApp,sheetIdentifier)
OnErrorResumeNext
SetGetSheet=ExcelApp.Worksheets.Item(sheetIdentifier)
OnErrorGoTo0
EndFunction
'*********************************************************************************************
'函数说明:
添加一张新的工作表
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)workbookIdentifier:
属于ExcelApp的工作薄名称;
'
(2)sheetName:
要插入的工作表名称;
'返回结果:
'
(1)成功:
工作表对象worksheet
'
(1)失败:
Nothing
'调用方法:
' InsertNewWorksheet(ExcelApp,workbookIdentifier,"newsheet")
'*********************************************************************************************
FunctionInsertNewWorksheet(ExcelApp,workbookIdentifier,sheetName)
Dimworkbook'AsExcel.workbook
Dimworksheet'AsExcel.worksheet
'如果指定的工作薄不存在,将在当前激活状态的工作表中添加工作表
IfworkbookIdentifier=""Then
Setworkbook=ExcelApp.ActiveWorkbook
Else
OnErrorResumeNext
Err=0
Setworkbook=ExcelApp.Workbooks(workbookIdentifier)
IfErr<>0Then
SetInsertNewWorksheet=Nothing
Err=0
ExitFunction
EndIf
OnErrorGoTo0
EndIf
sheetCount=workbook.Sheets.Count'获取工作薄中工作表的数量
workbook.Sheets.Add,sheetCount'添加工作表
Setworksheet=workbook.Sheets(sheetCount+1)'初始化worksheet为新添加的工作表对象
'设置新添加的工作表名称
IfsheetName<>""Then
worksheet.Name=sheetName
EndIf
SetInsertNewWorksheet=worksheet
EndFunction
'*********************************************************************************************
'函数说明:
修改工作表的名称;
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)workbookIdentifier:
属于ExcelApp的工作薄名称;
' (3)worksheetIdentifier:
属于workbookIdentifier工作薄的工作表名称;
' (4)sheetName:
修改后的工作表名称;
'返回结果:
'
(1)修改成功,返回字符串:
OK
'
(2)修改失败,返回字符串:
BadWorksheetIdentifier
'调用方法:
' setret=RenameWorksheet(ExcelApp,"Book1","Sheet1","SheetName")
'*********************************************************************************************
FunctionRenameWorksheet(ExcelApp,workbookIdentifier,worksheetIdentifier,sheetName)
Dimworkbook
Dimworksheet
OnErrorResumeNext
Err=0
Setworkbook=ExcelApp.Workbooks(workbookIdentifier)
IfErr<>0Then
RenameWorksheet="BadWorkbookIdentifier"
Err=0
ExitFunction
EndIf
Setworksheet=workbook.Sheets(worksheetIdentifier)
IfErr<>0Then
RenameWorksheet="BadWorksheetIdentifier"
Err=0
ExitFunction
EndIf
worksheet.Name=sheetName
RenameWorksheet="OK"
EndFunction
'*********************************************************************************************
'函数说明:
删除工作表;
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)workbookIdentifier:
属于ExcelApp的工作薄名称;
' (3)worksheetIdentifier:
属于workbookIdentifier工作薄的工作表名称;
'返回结果:
'
(1)删除成功,返回字符串:
OK
'
(2)删除失败,返回字符串:
BadWorksheetIdentifier
'调用方法:
' setret=RemoveWorksheet(ExcelApp,"Book1","Sheet1")
'*********************************************************************************************
FunctionRemoveWorksheet(ExcelApp,workbookIdentifier,worksheetIdentifier)
Dimworkbook'AsExcel.workbook
Dimworksheet'AsExcel.worksheet
OnErrorResumeNext
Err=0
Setworkbook=ExcelApp.Workbooks(workbookIdentifier)
IfErr<>0Then
RemoveWorksheet="BadWorkbookIdentifier"
ExitFunction
EndIf
Setworksheet=workbook.Sheets(worksheetIdentifier)
IfErr<>0Then
RemoveWorksheet="BadWorksheetIdentifier"
ExitFunction
EndIf
worksheet.Delete
RemoveWorksheet="OK"
EndFunction
'*********************************************************************************************
'函数说明:
添加新的工作薄
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'返回结果:
'
(1)成功:
工作表对象NewWorkbook
'
(1)失败:
Nothing
'调用方法:
' setNewWorkbook=CreateNewWorkbook(ExcelApp)
'*********************************************************************************************
FunctionCreateNewWorkbook(ExcelApp)
SetNewWorkbook=ExcelApp.Workbooks.Add()
SetCreateNewWorkbook=NewWorkbook
EndFunction
'*********************************************************************************************
'函数说明:
打开工作薄
'参数说明:
'
(1)ExcelApp:
Excel应用程序名称;
'
(2)path:
要打开的工作薄路径;
'返回结果:
'
(1)成功:
工作表对象NewWorkbook
'
(1)失败:
Nothing
'调用方法:
' setNewWorkbook=CreateNewWorkbook(ExcelApp)
'*********************************************************************************************
FunctionOpenWorkbook(ExcelApp,path)
OnErrorResumeNext
SetNewWorkbook=ExcelApp.Workbooks.Open(path)
SetōpenWorkbook=NewWorkbook
OnErrorGoTo0
EndFunction
'***********************