QTP读写excel中的值(二)

上一篇 / 下一篇  2011-07-25 16:48:14 / 个人分类:QTP的学习研究

  今天搜集的QTP读取excel中的值方法是自己写函数。是自己在网上找的读写excel的函数,然后通过自己的调试进行修改得到的,下面结合飞机订票系统写的脚本。

   '声明一个写进excel过程,filepath是指excel存放的路径,sheetname是workbook中的工作薄,x,y相当于坐标,x表示行,y表示列,wrivalue是要写进去的值。
   Function writeExcel(filepath,sheetname,x,y,wrivalue)
   Set bjExcel = CreateObject ("Excel.Application")
       'Excel程序不在前台显示
    ObjExcel.Visible = False

       '设置变量SrcExcel等于Excel工作薄open
       'Activate定位活动的sheet
       '并给某一单元格赋值
   Set SrcExcel = ObjExcel.WorkBooks.Open(filepath)
    SrcExcel.WorkSheets(sheetname).Activate
    SrcExcel.WorkSheets(sheetname).Cells(x,y).Value = wrivalue
          ObjExcel.DisplayAlerts = False
          ObjExcel.save      
  'Excel退出,释放资源
    ObjExcel.quit
    Set bjExcel = Nothing
    Set SrcExcel = Nothing
End Function



   '定义读excel过程,这儿的filepath,sheetname,x,y跟writeexcel中的相同。

  Function ReadExcel(filepath,sheetname,x,y)
  Dim ObjExcel,SrcExcel,ExcValue

   Set bjExcel = CreateObject ("Excel.Application")
       'Excel程序不在前台显示
    ObjExcel.Visible = False

       '设置变量SrcExcel等于Excel工作薄open
       'Activate定位活动的sheet
       '并给某一单元格赋值
    Set SrcExcel = ObjExcel.WorkBooks.Open(filepath)
    SrcExcel.WorkSheets(sheetname).Activate
    ExcValue = SrcExcel.WorkSheets(sheetname).Cells(x,y).Value 
  '当出现“在当前位置发现已经存在为"RESUME.XLW"的文件。您希望将该文件替换掉吗?” 使用DisplayAlerts代码该列
          ObjExcel.DisplayAlerts = False
          ObjExcel.save
      '  print(ExcValue)

  'Excel退出,释放资源
    ObjExcel.quit
    Set bjExcel = Nothing
    Set SrcExcel = Nothing
End Function

  '输入登录名和密码
SystemUtil.Run  "D:\Program Files\HP\QuickTestProfessional\samples\flight\app\flight4a.exe"
Dialog("Login").WinEdit("Agent Name:").Set ReadExcel("D:/case.xls","login",9,2)  '调用readexcel
Dialog("Login").WinEdit("Password:").Set ReadExcel("D:/case.xls","login",9,3)
Dialog("Login").WinButton("OK").Click
wait (2)

'插入检查点,并获取提示框的值
checkvalue=Dialog("Login").Dialog("Flight Reservations").Static("Agent name must be at").GetROProperty("text")
'print(checkvalue)

'关闭提示窗口
Dialog("Login").Dialog("Flight Reservations").WinButton("确定").Click
'关闭飞机订票系统
dialog("Login").Close 

  刚开始引用网上的writeexcel时,只有定义了四个参数,即doexcel(filepath,sheetname,x,y)在回放的时候有问题,然后跟朋友讨论的时候,考虑到writeexcel不能单独写成一个vbs文件进行调用,然后就添加了一个wrivalue参数,以备以后单独写成函数进行调用。
   有什么不正确的地方,请大家多多指正~~尽管砸鸡蛋吧。。。晚上我可以吃煎蛋哦~~请不要吝啬。。
  

TAG:

奋斗的个人空间 引用 删除 819longjiayan   /   2011-07-28 14:23:35
非常谢谢你,有空跟你学习学习
原帖由ermine于2011-07-27 00:32:54发表
第一行写变量名,如"password"
用usedrange.rows.count设置循环遍历,当找到"password&.
ermine的个人空间 引用 删除 ermine   /   2011-07-27 00:32:54
第一行写变量名,如"password"
用usedrange.rows.count设置循环遍历,当找到"password"时候,返回所在列,这样只要第一行的表明信息不变,随便放在"A"列或是"B"列都OK。
当把QTP中default的表导出来后,就能看到第一行就是参数名,所以是类似的处理。
好处是,一个用跟好认的名字取代数字,一个当表进行维护,增加列时,不用考虑绝对位置
奋斗的个人空间 引用 删除 819longjiayan   /   2011-07-26 09:07:26
原帖由ermine于2011-07-25 22:00:02发表
自己实验函数用挺好,如果用于实际项目,尽量避免用cells的绝对坐标来取变量的值。
列可以参照QTP的参数.


谢谢。。。能详细说说吗。。
ermine的个人空间 引用 删除 ermine   /   2011-07-25 22:00:02
自己实验函数用挺好,如果用于实际项目,尽量避免用cells的绝对坐标来取变量的值。
列可以参照QTP的参数,用一个表头取做变量。
the999jiao的个人空间 引用 删除 the999jiao   /   2011-07-25 19:06:56
我来支持  燕子加油
 

评分:0

我来说两句

Open Toolbar