51Testing软件测试论坛

标题: 怎样从EXCEL中读取数据到datatable? [打印本页]

作者: shunfyu    时间: 2009-1-9 15:21
标题: 怎样从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 编辑 ]
作者: shunfyu    时间: 2009-1-9 15:41
难道是不能这样导入数据的??
作者: wuei9090    时间: 2009-1-9 15:50
import 是把excle导入datatable里
如果要用里面的值还需要username = datatable("user_name",dtGolbalSheet)
作者: 远野志贵    时间: 2009-1-9 16:02
datatable.import就可以的。你肯定是什么地方弄错了吧。

作者: shunfyu    时间: 2009-1-9 16:22
是导入的时候就出错了!~~ 说什么 File contains a feature not supported by Formula One..
作者: shunfyu    时间: 2009-1-9 17:36
到底是什么问题的啊? 郁闷~
作者: shunfyu    时间: 2009-1-10 10:21
顶起来!!
作者: asoqa    时间: 2009-1-10 11:34
应该是你的excel单元格的格式QTP不支持,你可以把excel的格式清除,再手动输入,看看能不能导入。
作者: most2008    时间: 2009-1-10 12:34
标题: 从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
作者: shunfyu    时间: 2009-1-10 13:02
楼上的GG,我不明白啊,为什么要写这么多代码的?? 它和datatable.import各有什么区别啊???
作者: most2008    时间: 2009-1-10 13:11
道理都一样,你用导入就是直接把数据导到QTP的表中,再去读表中的数据。上面是用代码直接从硬盘的文件中读文件里的数据,赋给脚本中的变量而已。
作者: shunfyu    时间: 2009-1-10 13:27
嗯, 明白了。。非常感谢,most2008 …… 但我的问题还是没解决啊,就是用 datatable import ... 还是不行啊……
作者: asoqa    时间: 2009-1-10 15:06
兄弟,看看你的出错信息“File contains a feature not supported by Formula One”
要知道Formula One是QTP DataTable所采用的控件,也就是QTP的DataTable不是用的微软的Excel,而是用的Formula One这个控件。现在错误提示说明Excel的格式与Formula One不兼容,所以不要浪费时间在语法上了,语法没有问题。应该是兼容性的问题。
作者: shunfyu    时间: 2009-1-10 15:18
  感谢楼上的提醒,我也想到过这个问题,可能是因为我用的是OpenOffice导出的xls文档吧~~ 但没道理QTP只认MS的产品,不认识标准的xls文件??
作者: lingxin5013    时间: 2009-1-13 09:46
datatable.importsheet
作者: shunfyu    时间: 2009-1-13 10:21
  真是灵异事件啊!·~~ datatable.importsheet 导不入QTP,表的内容是空白的……
作者: shunfyu    时间: 2009-1-13 10:43
我指的是运行当中~~ datatable.import 语句后,跟了一个 wait(10),  专门来看数据导入到QTP中没有,但可惜总导入不了,真的是一定要microsoft office啊?
作者: lingxin5013    时间: 2009-1-13 14:21
LS是什么OFFICE
作者: 远野志贵    时间: 2009-1-13 15:55
楼主是“朱”啊。
“春”到了极点。

作者: shunfyu    时间: 2009-1-14 10:40
  搞定。。。 楼上的嘴巴不干净,但还是感谢你的回复。。
作者: zhysync    时间: 2009-1-14 14:50
我试了一下,用MSexcel编的可以导入呀。导入时不要打开这个文件,你多试试。
作者: shunfyu    时间: 2009-1-14 15:31
顶楼上的。。。 多谢你的帮助。。
作者: Randall    时间: 2009-1-14 20:16
openoffice格式的文档是不能import到datatable的
作者: ∮随风而去~    时间: 2009-1-16 18:02
学习~!
作者: liull315    时间: 2009-1-19 14:22
用datatable.improt会出现不兼容的问题吗??
datatable.importsheet呢??
作者: loho1968    时间: 2009-1-19 22:54
可以使用ADO直接打开EXCEL,然后如同访问数据库一样访问和更新EXCEL
作者: maomaochong010    时间: 2009-3-12 11:17
我想请教一下,打开本地硬盘上的一个excel读取数据,能不能按照第一行的列名来读取啊
excel我是这样设计的:
第一行:username     userpassword
第二行:maomao        12345


目前我读数据,直接从第二行读取,我现在想如果可以根据第一行的名字来读取是不是更好一些?这样列的前后顺序变动了也不需要改动代码了,请问大家有什么好办法吗
作者: yan_guimei    时间: 2009-8-18 11:14
标题: 回复 20# 的帖子
我也遇到了同样的问题。。请问怎么解决的。。?
作者: 936586303    时间: 2011-12-5 15:01
楼主,我也想从有EXCEl上导入数据到Action中,但不知道从何下手、、、帮帮忙哇,新手
作者: lijingprince5    时间: 2012-7-5 15:24
回复 1# shunfyu


    我执行代码,执行完之后是没有反应的
作者: yazi0127    时间: 2012-7-5 15:56
QTP支持xls格式
作者: yazi0127    时间: 2012-7-5 16:10
回复 27# maomaochong010


直接从data table中去字段的名字
DataTable.GetSheet(sheetname).GetParameter("UserName")
作者: user603    时间: 2012-7-5 16:50
回复 20# shunfyu


    这问题我也碰到过,当时用的其他OFFICE,存在XLS。换成MS OFFICE2010的文档OK的。
作者: TestWith1314    时间: 2012-7-6 10:08
No error no warning happens, but excel datas haven't be imported to the datatable, why ?
作者: 金盒    时间: 2012-7-6 12:52
我觉得如果导出一下,再导入可以。但是如果excel是新的或者是被修改了,就导入不了,求解决?
作者: 北京测试基地    时间: 2012-7-10 10:40
版本问题,用2003 的xls文件没问题,2007的xlsx的读取有误。




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