lery 发表于 2010-1-12 14:42:12

如何将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:10

我按照你的方法来做,还是不行啊。出现找不到“price”这列:L

yujie6832 发表于 2010-2-1 16:55:46

当然找不到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:56

中间过程是把excel里的值显示出来了,可运行结束以后datatable里还是没有数据,有办法解决这个问题吗?

TIB 发表于 2010-4-16 23:05:57

关于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:49

importSheet 这个方法的第三个参数是待导入的DataTable的名称或索引,所以需要确保你的脚本中含有对应的DataTable
虽然导入的数据是临时存在的,脚本运行完后会自动从DataTable中消失,但运行结果报告中会有导入的DataTable的对应数据可以查阅

17800455 发表于 2010-4-20 09:18:47

DataTable.ImportSheet("C:\123.xls","exsheet","Action1")
dataTable.Import("C:\123.xls")

qtlang 发表于 2010-9-7 14:50:25

有没有方法是能直接在action表中看到数据的,而不是在result中才能看到?

kavensyw 发表于 2010-9-7 20:01:43

import导入后,可以用wait语句,设置断点,可以查看有没有导入数据

17800455 发表于 2010-11-16 13:39:57

回复 8# qtlang


    只有在运行的过程中才会导入数据 ,

936586303 发表于 2011-12-5 16:09:47

导进去没有数据呀,怎么让它有数据呢

936586303 发表于 2011-12-5 16:54:05

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:58

username       password
ddd        123
sss        232
swfe        234
sfw        123
这是EXCEl表格

yaya@hyl 发表于 2011-12-6 12:21:10

额~还是要试试才知道!

huangyl 发表于 2012-3-26 12:38:00

出错啊出错!

linchen123 发表于 2012-7-20 01:58:48

晕,将GetSheet(2)里面的2改成1就是好的。:L

yazi0127 发表于 2012-7-23 16:29:25

回复 4# hadywei

这是QTP的运行机制,QTP执行的过程中导入数据,是run time的datatable.

yazi0127 发表于 2012-7-23 16:31:06

回复 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:53

回复 12# 936586303
请问,你这个问题最后怎么解决的?原因找到了吗?我也遇到过同样的问题。。。

louqqson008 发表于 2012-8-16 13:43:26

学习下
页: [1] 2
查看完整版本: 如何将excel数据导入QTP的DataTable的方法