yao2631488 发表于 2013-1-5 17:54:36

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

QTP 如何调用外部xls,不用手动导入的方法;:dizzy: 求指导。

黑羽祭 发表于 2013-1-6 09:09:40

回复 1# yao2631488


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

赵佳乐SMILE 发表于 2013-1-6 09:38:22

回复 2# 黑羽祭


    老大 函数一般要写在哪里啊

黑羽祭 发表于 2013-1-6 10:09:26

回复 3# 赵佳乐SMILE


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

赵佳乐SMILE 发表于 2013-1-6 11:03:13

回复 4# 黑羽祭


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

黑羽祭 发表于 2013-1-6 11:22:10

回复 5# 赵佳乐SMILE


    DataTable表吗?我早就没用了,用外部Excel吧,处理数据方便多了。

user603 发表于 2013-1-6 13:52:17

回复 6# 黑羽祭


    同感。

yao2631488 发表于 2013-1-6 17:25:47

回复 2# 黑羽祭
非常感谢,上网找了些都不知道怎么用。。这个直接用函数,方便了许多~:lol :handshake

赵佳乐SMILE 发表于 2013-1-6 17:32:55

本帖最后由 赵佳乐SMILE 于 2013-1-6 17:38 编辑

回复 6# 黑羽祭


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

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

For i=2 to GetExcelSheetRowsCount
所有操作
Next
ExcelBook.Quit
Set ExcelBook=Nothing

赵佳乐SMILE 发表于 2013-1-6 17:32:41

回复 6# 黑羽祭


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

user603 发表于 2013-1-6 19:07:33

回复 9# 赵佳乐SMILE


    看看有没有关闭释放创建的Excel

黑羽祭 发表于 2013-1-7 09:16:04

回复 10# 赵佳乐SMILE


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

赵佳乐SMILE 发表于 2013-1-7 09:38:43

回复 12# 黑羽祭


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

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

win7 +QTP11 +IE8

黑羽祭 发表于 2013-1-7 10:12:20

回复 13# 赵佳乐SMILE


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

yao2631488 发表于 2013-1-7 10:23:30

回复 4# 黑羽祭
再问下大大用你这个函数,要是想循环调用sheet中所有的数据,如何实现啊?{:4_103:}

黑羽祭 发表于 2013-1-7 10:56:17

回复 15# yao2631488


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

赵佳乐SMILE 发表于 2013-1-7 11:30:35

回复 14# 黑羽祭


    哦 那我也换xlsx试试 哎 今天开月总结会 要往LR方向发展了

黑羽祭 发表于 2013-1-7 11:51:22

回复 17# 赵佳乐SMILE


    嗯~加油吧。
要学的东西太多了

正在更新 发表于 2013-1-12 12:33:36

回复 17# 赵佳乐SMILE


    MyExcelBook.close false

先关闭被EXCEL应用打开的EXCEL文档,再退出EXCEL 试试吧

cellule 发表于 2013-1-14 13:36:52

额,用QTP写exl的时候,我的习惯是先看下有没打开exl,如果有打开则关闭

如果你是要动态加载exl到dataTable里面 可以用这个DataTable.Import(FileName)方法
页: [1] 2
查看完整版本: QTP 如何调用外部xls,不用手动导入的方法;