efficient 发表于 2011-6-14 15:48:28

关于datatable的 Sheet 的使用

本帖最后由 efficient 于 2011-6-14 15:49 编辑

我在QTP中 对 Datatable进行操作,代码如下:
datatable.Import("E:\2011\05\23_QTP\QTPpratice\SSN.xls")
msgbox datatable.GetSheet("Sheet1").GetRowCount
运行一直提示错误信息:
The DataTable.GetSheet operation failed. The Sheet1 sheet does not exist.
Line (5): "msgbox datatable.GetSheet("Sheet1").GetRowCount".
可是在SSN.xls中 第一个sheet就是叫Sheet1, 但是却一直提示不存在? 是怎么回事啊?
我用datatable.getSheetCount=2 ,为啥不是等于3?
然后我用
datatable.Import("E:\2011\05\23_QTP\QTPpratice\SSN.xls")
call datatable.ImportSheet("E:\2011\05\23_QTP\QTPpratice\SSN.xls",2,"Action1")
msgbox datatable.GetSheet("Sheet2").GetRowCount
还是提示说Sheet2 不存在。
请问要怎样做,才能够sheet可用

17800455 发表于 2011-6-14 17:10:22

本帖最后由 17800455 于 2011-6-14 17:14 编辑

1.很简单。 因为你用import 默认是导入到全局表中。也就是Global中

你可以用importSheet("E:\test.xls","Sheet1","Action1")

在全局里直接这样用就可以获取到行数

datatable.GetRowCount

2.我用datatable.getSheetCount=2 ,为啥不是等于3?

你获取的是qtp DataTable表中的表,默认 一个Global 和一个Action1两张表。
而不是你Excel中的表。

3.然后我用
datatable.Import("E:\2011\05\23_QTP\QTPpratice\SSN.xls")
call datatable.ImportSheet("E:\2011\05\23_QTP\QTPpratice\SSN.xls",2,"Action1")
msgbox datatable.GetSheet("Sheet2").GetRowCount
还是提示说Sheet2 不存在。
请问要怎样做,才能够sheet可用

datatable.GetSheet("Action1").GetRowCount 获取的是qtp Datatable中的表,而不是Excel中的。
这样就可以了。

efficient 发表于 2011-6-15 09:39:33

回复 2# 17800455

thank you very much, it really works!
页: [1]
查看完整版本: 关于datatable的 Sheet 的使用