51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 6082|回复: 21
打印 上一主题 下一主题

[原创] QTP 如何调用外部xls,不用手动导入的方法;

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2013-1-5 17:54:36 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
QTP 如何调用外部xls,不用手动导入的方法; 求指导。
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    2#
    发表于 2013-1-6 09:09:40 | 只看该作者
    回复 1# yao2631488


        我在51空间里写过:
    http://www.51testing.com/index.php?uid-307440-action-viewspace-itemid-827863
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    3#
    发表于 2013-1-6 09:38:22 | 只看该作者
    回复 2# 黑羽祭


        老大 函数一般要写在哪里啊
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    4#
    发表于 2013-1-6 10:09:26 | 只看该作者
    回复 3# 赵佳乐SMILE


        这就看你的习惯了我是如果脚本是独立的小脚本,就随便写在Action里,写下面点位置。
    如果脚本比较大,就写在独立的vbs里,加载到Library就可以了。
    不过在Library里,不能调用Action里的函数。
    Library里的函数文件,要注意保存的路径,建议使用相对路径,当脚本移动时不会因找不到文件出错。
    Library里的函数也可以使用对象库,只要对象库里存在相应的对象就好了。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    5#
    发表于 2013-1-6 11:03:13 | 只看该作者
    回复 4# 黑羽祭


    谢谢 学习了
    我这两天正好在研究这个 因为我发现 用Local表 维护测试数据好麻烦 嘿嘿
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    6#
    发表于 2013-1-6 11:22:10 | 只看该作者
    回复 5# 赵佳乐SMILE


        DataTable表吗?我早就没用了,用外部Excel吧,处理数据方便多了。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2013-1-6 13:52:17 | 只看该作者
    回复 6# 黑羽祭


        同感。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
     楼主| 发表于 2013-1-6 17:25:47 | 只看该作者
    回复 2# 黑羽祭
    非常感谢,上网找了些都不知道怎么用。。这个直接用函数,方便了许多~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    9#
    发表于 2013-1-6 17:32:55 | 只看该作者
    本帖最后由 赵佳乐SMILE 于 2013-1-6 17:38 编辑

    回复 6# 黑羽祭


        我没有用你的那个函数
    我用的是

    1. '获取参数文件路径
    2. FilePath=Environment("TestDir")&"\测试工程数据.xls"
    3. Set ExcelBook=CreateObject("Excel.Application")
    4. '设置为true的情况,文档会打开
    5. ExcelBook.Visible=false
    6. ExcelBook.DisplayAlerts=false
    7. Set MyExcelBook=ExcelBook.WorkBooks.Open(FilePath)
    8. Set MyExcelSheet=MyExcelBook.Sheets("Sheet1")
    9. '获取Excel表中记录的条数
    10. GetExcelSheetRowsCount=MyExcelSheet.UsedRange.Rows.Count

    11. For i=2 to GetExcelSheetRowsCount
    12. 所有操作
    13. Next
    14. ExcelBook.Quit
    15. Set ExcelBook=Nothing
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    10#
    发表于 2013-1-6 17:32:41 | 只看该作者
    回复 6# 黑羽祭


        弱弱的问一下 为啥用QTP跑过的Excel变成 只读的了? 即使关闭了QTP也是 不能修改数据了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2013-1-6 19:07:33 | 只看该作者
    回复 9# 赵佳乐SMILE


        看看有没有关闭释放创建的Excel
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    12#
    发表于 2013-1-7 09:16:04 | 只看该作者
    回复 10# 赵佳乐SMILE


        我没看出有什么问题,而且,我也试了你写的脚本,我的xls并没有变成只读形式。
    唯一不一样的可能我用的是xlsx,但并不影响脚本啊。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    13#
    发表于 2013-1-7 09:38:43 | 只看该作者
    回复 12# 黑羽祭


        嗯 很奇怪 关了机 今天早上来 又不是只读的了

    我看好像说是不支持xlsx 的 所以才用xls的

    win7 +QTP11 +IE8
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    14#
    发表于 2013-1-7 10:12:20 | 只看该作者
    回复 13# 赵佳乐SMILE


        支持的,至少用我的方法是支持的,我从QTP10开始就一直用的XLSX。
    我现在的环境也是win7+IE8+QTP11.5了。
    那个问题解决了就好。稀奇古怪的环境问题。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
     楼主| 发表于 2013-1-7 10:23:30 | 只看该作者
    回复 4# 黑羽祭
    再问下大大用你这个函数,要是想循环调用sheet中所有的数据,如何实现啊?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    16#
    发表于 2013-1-7 10:56:17 | 只看该作者
    回复 15# yao2631488


    如果你是固定的行和列,用个两层的for循环不就出来了嘛。
    如果不是固定的,用个两层Do循环,加个判断为空就换下一行或下一列也可以嘛~(PS:这种的话,数据矩阵中就不能有空格了,空么就写null吧)
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-10-4 10:34
  • 签到天数: 1208 天

    连续签到: 1 天

    [LV.10]测试总司令

    17#
    发表于 2013-1-7 11:30:35 | 只看该作者
    回复 14# 黑羽祭


        哦 那我也换xlsx试试 哎 今天开月总结会 要往LR方向发展了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    无聊
    2018-9-27 10:05
  • 签到天数: 36 天

    连续签到: 1 天

    [LV.5]测试团长

    18#
    发表于 2013-1-7 11:51:22 | 只看该作者
    回复 17# 赵佳乐SMILE


        嗯~加油吧。
    要学的东西太多了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    19#
    发表于 2013-1-12 12:33:36 | 只看该作者
    回复 17# 赵佳乐SMILE


        MyExcelBook.close false

    先关闭被EXCEL应用打开的EXCEL文档,再退出EXCEL 试试吧
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    20#
    发表于 2013-1-14 13:36:52 | 只看该作者
    额,用QTP写exl的时候,我的习惯是先看下有没打开exl,如果有打开则关闭

    如果你是要动态加载exl到dataTable里面 可以用这个DataTable.Import(FileName)方法
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-22 06:25 , Processed in 0.079854 second(s), 27 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表