51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 2500|回复: 4
打印 上一主题 下一主题

[原创] 求助EXCEL文件读取问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-8-25 14:39:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
要求打印出文件内两列的数据:在QTP读取EXCEL文件时,传入一个EXCEL文件名,但为什么只打印出第一列的值,而不打印第二列呢?试验了好多次都没看出什么原因。哪位大侠帮看下哈
Public Function ImportFile(byref filePath)
   On error resume next
        datatable.ImportSheet filePath,"Sheet1","Action1"
        Dim dtSheet,dtMp1,dtMp2,dataItem
        Set dtSheet = datatable.GetSheet("Action1")
        For dataItem = 0 to dtSheet.getRowCount
                dtMp1 = datatable("mp","Action1")
                dtMp2 = databale("mpConfirm","Action1")
                msgbox(dtMp1&"*"&dtMp2)'为什么此句只打印dtMp1的值,而不打印dtMp2的值?
     next
     If err <> 0 Then
        Call WriteMsg(logFileNow,"导入EXCEL文件时发生异常:"&"错误码:"&err.number&" 错误描述:"&err.source&" 错误原因:"&err.description)
     End If
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-8-25 15:16:26 | 只看该作者
我不知道你的问题出在哪里,我做是可以的.

在我的EXCEL里有两列: couse & score. 把它们导入 Action1, 然后打印.你看看对你有没有用,再做点修该. 我没有加任何错误处理,只有中间过程

DataTable.ImportSheet "C:\TEST.xls", 1, 2

Dim i, x, y


For i = 1 to DataTable.LocalSheet.GetRowCount

DataTable.LocalSheet.SetCurrentRow i

x = DataTable.LocalSheet.GetParameter("Course")
y = DataTable.LocalSheet.GetParameter("Score")

Msgbox (x & ":" & y)

Next
回复 支持 反对

使用道具 举报

该用户从未签到

3#
 楼主| 发表于 2008-8-25 15:52:13 | 只看该作者

回复 2# 的帖子

OK,你的方法可以解决这个问题。但还是不明白为什么会出现那样的错误
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-8-26 09:46:58 | 只看该作者
原帖由 centurystone 于 2008-8-25 14:39 发表
要求打印出文件内两列的数据:在QTP读取EXCEL文件时,传入一个EXCEL文件名,但为什么只打印出第一列的值,而不打印第二列呢?试验了好多次都没看出什么原因。哪位大侠帮看下哈
Public Function ImportFile(byref fi ...


1. 在msgbox后面加上: datatable.SetNextRow

2. 另外,你这个count的算法应该有问题
Action1中的列名mp,mpConfirm这两个是否是从excel中第一行中取得?
比如excel中是
-------------------------------------
A     |   B            | C       D  ..
-------------------------------------
mp    |  mpConfirm     |
test1 |   test12       |
test2 |   test22       |
...
----------------------------------------
如果是这样的话
你代码中count应该写成count-1

3. 你代码中dtMp2 = databale("mpConfirm","Action1")此行datatable拼写错误
回复 支持 反对

使用道具 举报

该用户从未签到

5#
 楼主| 发表于 2008-8-26 10:29:06 | 只看该作者

回复 4# 的帖子

Excel文件中有两列,分别是mpConfirm,mp,多谢版主指点,竟然犯了如此低级错误。。。
回复 支持 反对

使用道具 举报

本版积分规则

关闭

站长推荐上一条 /1 下一条

小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

GMT+8, 2024-11-25 22:24 , Processed in 0.077401 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

快速回复 返回顶部 返回列表