QTP对Excel的操作(EOM).doc
上传人:yy****24 上传时间:2024-09-10 格式:DOC 页数:7 大小:303KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

QTP对Excel的操作(EOM).doc

QTP对Excel的操作(EOM).doc

预览

在线预览结束,喜欢就下载吧,查找使用更方便

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

QTP对Excel的操作(EOM)EOM->ExcelAutomationObjectModel即Excel自动化模型对象在自动化测试中,我们常利用Excel对数据跟脚本进行分离,也就是平常所说的数据驱动。当然了,QTP自带的dataTable也很好用,但是作为一个自动化攻城狮怎么能不会EOM呢。下面看一段我写的代码,里面包含了一些基本操作。我写的注释也比较详细,相信通过阅读代码一定不难理解:Dim fileName,filePathDim excelApp,fso,sheet,shellSet excelApp = CreateObject("excel.Application")Set fso = CreateObject("Scripting.FileSystemObject")Set shell = CreateObject("WScript.Shell")fileName = "d:\1.xls"filePath = "d:\1"excelApp.Visible = TrueexcelApp.Workbooks.Add '新增一个workbookexcelApp.Save fileName '保存workbookexcelApp.Quit  '关闭excelApp.Workbooks.Open fileName  '打开之前保存的excel文件excelApp.Visible = True '一旦关闭之后,visible又变成了false,需要重置为trueSet sheet = excelApp.Sheets.Add  '新增一个sheetsheet.name = "sunyu"  '给新增的sheet命名sheet.cells(1,1) = "hello world"'下面这段SendKeys的功能是另存为功能,原先的文件还是存在的,此时保存的文件将是xlsx文件'有人会问为什么不用excelApp.Save 这个方法,我试过在用这个方法时会遇到问题'大概是因为vbs创建的xls文件保存时会遇到格式的问题,而且save是保存,不是另存为'关于这一点如果有知道的朋友可以告诉我原因 我的邮箱dieinthemoon@163.comshell.SendKeys "^s"shell.SendKeys filePathshell.SendKeys "{ENTER}"shell.SendKeys "%Y"'MsgBox  excelApp.Workbooks.Count '进程中xls的数量;同时让程序停止一下,看看运行中的效果excelApp.Quit'删除掉后缀为xls的文件,避免下次运行时冲突If fso.FileExists(fileName) Then    fso.DeleteFile fileNameEnd IfSet excelApp = NothingSet fso = NothingSet shell = NothingSet sheet = Nothing需要注意的是,我使用的Office2007来测试的。用2010应该也不会有问题,前提是你建立的文件后缀必须是.xls,如果你创建文件时后缀改成.xlsx的话,就会出问题。此时你无法打开你建立的xlsx文件,我在网上也找了一些资料,但是还没有发现好的解决办法。这里我采用了shell.SendKeys "^s",会默认为另存为功能,自动保存为xlsx格式的文件,并且此时文件是可以打开不会报错的。这是直接创建xlsx文件后试图打开文件时的错误截图:正常运行后得到的效果图如下,里面正确输入了数据,并且sheet名字已经改了。或许你编码的时候发现sheet对象并不能“点”出方法来,有个比较实用的技巧,打开excel,然后点ALT+F11,你可以在里面“点”出你想要的方法来,接下来就复制粘贴吧。动态运行并加载宏代码宏的主要用途是可以让用户自行定义一些操作,并通过计算机进行自动化,省去用户很多繁琐重复的操作。首先在之前的那个excel里加入一段宏代码,功能很简单,弹出一个msgbox然后在QTP里直接调用:Setexc=CreateObject("excel.application")exc.Workbooks.Open"d:\1.xlsm"Setsheet=exc.Sheets.Item(1)sheet.syexc.ActiveWorkbook.Closeexc.QuitSetexc=NothingSetsheet=Nothing这里我打开的是一个xlsm格式的文件,这是一个包含宏运算格式的excel文件。程序很简单,只是为了说明excel宏里面的所有方法函数都是可以通过QTP来调用的。