怎样从EXCEL中读取数据到datatable?
现在有一个QTP脚本,我希望它从本地硬盘上"D:\test\data.xls" 读取其中的两列数据,分别是“user_name" 和 "password"到QTP中的datatable的"Action1"表, 怎么写代码啊?代码如下:
datatable.ImportSheet "D:\login.xls", "Sheet1", "login"
[ 本帖最后由 shunfyu 于 2009-1-9 17:37 编辑 ] 难道是不能这样导入数据的?? import 是把excle导入datatable里
如果要用里面的值还需要username = datatable("user_name",dtGolbalSheet) datatable.import就可以的。你肯定是什么地方弄错了吧。
:o 是导入的时候就出错了!~~ 说什么 File contains a feature not supported by Formula One.. 到底是什么问题的啊? 郁闷~ :( 顶起来!! 应该是你的excel单元格的格式QTP不支持,你可以把excel的格式清除,再手动输入,看看能不能导入。
从EXCLE里读取数据实例
'============================' 从EXCLE里读取数据实例
'============================
Option Explicit
Dim xlApp, xlFile, xlSheet,Msg
Dim iRowCount, iLoop,iLoop1,numAdd,iColCount,column2,column3,column4
Set xlApp = CreateObject ("Excel.Application")'创建访问对象xlApp
Set xlFile = xlApp.Workbooks.Open ("F:\VbScript.eg\Employees.xls")'打开文件
Set xlSheet = xlFile.Sheets("Sheet1")'设置访问文件列表
iRowCount = xlSheet.usedRange.Rows.Count
iColCount = xlSheet.usedRange.Columns.Count
For iLoop = 2 To iRowCount'取出第2行到第iRowCount行的值
For iLoop1 = 1 To iColCount'取出第一列到第iRowCount列的值
numAdd = numAdd&""&xlSheet.Cells(iLoop,iLoop1)
Next
Msg=MsgBox("第"&iLoop&"条记录:"&numAdd,,"提示!")
numAdd=""
Next
'xlFile.Save
xlFile.Close
xlApp.Quit
Set xlSheet = Nothing
Set xlFile = Nothing
Set xlApp = Nothing 楼上的GG,我不明白啊,为什么要写这么多代码的?? 它和datatable.import各有什么区别啊??? 道理都一样,你用导入就是直接把数据导到QTP的表中,再去读表中的数据。上面是用代码直接从硬盘的文件中读文件里的数据,赋给脚本中的变量而已。 嗯, 明白了。。非常感谢,most2008 …… 但我的问题还是没解决啊,就是用 datatable import ... 还是不行啊…… 兄弟,看看你的出错信息“File contains a feature not supported by Formula One”
要知道Formula One是QTP DataTable所采用的控件,也就是QTP的DataTable不是用的微软的Excel,而是用的Formula One这个控件。现在错误提示说明Excel的格式与Formula One不兼容,所以不要浪费时间在语法上了,语法没有问题。应该是兼容性的问题。 :handshake感谢楼上的提醒,我也想到过这个问题,可能是因为我用的是OpenOffice导出的xls文档吧~~ 但没道理QTP只认MS的产品,不认识标准的xls文件?? datatable.importsheet :Q真是灵异事件啊!·~~ datatable.importsheet 导不入QTP,表的内容是空白的…… 我指的是运行当中~~ datatable.import 语句后,跟了一个 wait(10),专门来看数据导入到QTP中没有,但可惜总导入不了,真的是一定要microsoft office啊? LS是什么OFFICE 楼主是“朱”啊。
“春”到了极点。
:o :victory:搞定。。。 楼上的嘴巴不干净,但还是感谢你的回复。。:hug:
页:
[1]
2