51Testing软件测试论坛

标题: 如何将excel数据导入QTP的DataTable的方法 [打印本页]

作者: lery    时间: 2010-1-12 14:42
标题: 如何将excel数据导入QTP的DataTable的方法
filePath="D:\lery work file\ForLeryTest\userHaveOrderPrice.xls"        ’首先将要导入DataTable的excel路径找到
Datatable.ImportSheet filePath,"userHaveOrderCompany","Price"       ’开始导入,ImportSheet后面的三个参数分别是该excel的路 径,,"userHaveOrderCompany"是该excel中将要导入的某个sheet名字,"Price"是DataTable中的sheet名字,意味着将“userHaveOrderCompany”sheet中的数据装载到DataTable的"Price"sheet中

rcount=DataTable.GetSheet("Price").GetRowCount                ’GetRowCount方法获得当前sheet的行数
For i=0 to rcount                   '用一个循环将该sheet中名为"SKU”的列所有数据读出来,其中GetSheet(2)方法中的参数可以是sheet name 或者是sheet Index
datatable.SetCurrentRow(i+1)
   itemContent=DataTable.GetSheet(2).getparameter("SKU").value
'也可以写成:itemContent=DataTable.value("SKU",2)
   msgbox itemContent
Next

[ 本帖最后由 lery 于 2010-1-29 14:19 编辑 ]
作者: huiguiziran111    时间: 2010-2-1 16:47
我按照你的方法来做,还是不行啊。出现找不到“price”这列
作者: yujie6832    时间: 2010-2-1 16:55
当然找不到PRICE这行。你看这段代码
datatable.SetCurrentRow(i+1)
   itemContent=DataTable.GetSheet(2).getparameter("SKU").value
'也可以写成:itemContent=DataTable.value("SKU",2)
   msgbox itemContent
Next

楼主只是做示范而已
作者: hadywei    时间: 2010-4-16 17:53
中间过程是把excel里的值显示出来了,可运行结束以后datatable里还是没有数据,有办法解决这个问题吗?
作者: TIB    时间: 2010-4-16 23:05
关于ImportSheet方法:
Imports a sheet of a specified file to a specified sheet in the run-time Data Table

注意是run-time Data Table
作者: souchy    时间: 2010-4-19 19:41
importSheet 这个方法的第三个参数是待导入的DataTable的名称或索引,所以需要确保你的脚本中含有对应的DataTable
虽然导入的数据是临时存在的,脚本运行完后会自动从DataTable中消失,但运行结果报告中会有导入的DataTable的对应数据可以查阅
作者: 17800455    时间: 2010-4-20 09:18
DataTable.ImportSheet("C:\123.xls","exsheet","Action1")
dataTable.Import("C:\123.xls")
作者: qtlang    时间: 2010-9-7 14:50
有没有方法是能直接在action表中看到数据的,而不是在result中才能看到?
作者: kavensyw    时间: 2010-9-7 20:01
import导入后,可以用wait语句,设置断点,可以查看有没有导入数据
作者: 17800455    时间: 2010-11-16 13:39
回复 8# qtlang


    只有在运行的过程中才会导入数据 ,
作者: 936586303    时间: 2011-12-5 16:09
导进去没有数据呀,怎么让它有数据呢
作者: 936586303    时间: 2011-12-5 16:54
filePath="G:\datatable.xls"      
Datatable.ImportSheet filePath,"datatable","username"   
rcount=DataTable.GetSheet("username").GetRowCount              
For i=0 to rcount                 
datatable.SetCurrentRow(i+1)
   itemContent=DataTable.GetSheet(1).getparameter("username").value
'也可以写成:itemContent=DataTable.value("SKU",2)
   msgbox itemContent
Next

为什么老是报The DataTable.GetSheet operation failed. The username sheet does not exist.

Line (11): "rcount=DataTable.GetSheet("username").GetRowCount". 和The Sheet.GetParameter operation failed. The <username> column does not exist.

Line (18): "itemContent=DataTable.GetSheet(1).getparameter("username").value".这个错误
作者: 936586303    时间: 2011-12-5 16:54
username         password
ddd        123
sss        232
swfe        234
sfw        123
这是EXCEl表格
作者: yaya@hyl    时间: 2011-12-6 12:21
额~还是要试试才知道!
作者: huangyl    时间: 2012-3-26 12:38
出错啊出错!
作者: linchen123    时间: 2012-7-20 01:58
晕,将GetSheet(2)里面的2改成1就是好的。
作者: yazi0127    时间: 2012-7-23 16:29
回复 4# hadywei

这是QTP的运行机制,QTP执行的过程中导入数据,是run time的datatable.
作者: yazi0127    时间: 2012-7-23 16:31
回复 12# 936586303


DataTable.ImportSheet(FileName, SheetSource, SheetDest)

FileName: The full or relative path of the Excel table from which you want to import a sheet. It can be a file system or Quality Center path.  

SheetSource:  The name or index of the sheet in the file that you want to import. Index values begin with 1.  

SheetDest:  The name or index of the sheet in the Data Table that you want to replace with the SheetSource. Index values begin with 1.  

要仔细去看QTP的帮助文档。
作者: 班小丸    时间: 2012-8-15 14:27
回复 12# 936586303
请问,你这个问题最后怎么解决的?原因找到了吗?我也遇到过同样的问题。。。
作者: louqqson008    时间: 2012-8-16 13:43
学习下
作者: vaguely    时间: 2014-8-8 18:39
thank you




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2