51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 9272|回复: 12
打印 上一主题 下一主题

[原创] 如何获取excel行数

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2008-9-1 15:46:22 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
脚本中如何获得一个excel中数据行数,请高手指教
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
发表于 2008-9-1 17:05:20 | 只看该作者
导入到DATATABLE
然后getrowcount
回复 支持 反对

使用道具 举报

该用户从未签到

3#
发表于 2008-9-1 17:48:06 | 只看该作者
如果是QTP中DataTable,数据行数可以直接用GetRowCount来获取

如果是Excel文件的话,目前我知道的只能去循环查找每一行,直到某一行为空,记录下当前的行号,这样来得到数据行数。
回复 支持 反对

使用道具 举报

该用户从未签到

4#
发表于 2008-9-1 22:21:51 | 只看该作者
自己写的方法,供你参考。。。
Function OpenExcel (byRef excelSH, filePath, sheetName)  //打开Excel对象
        On Error Resume Next
        Set excelApp = CreateObject("Excel.Application")
        excelApp.Visible = True
        Set excelWK = excelApp.Workbooks.Open(filePath)
        Set excelSH = excelWK.Worksheets(sheetName)
        On Error GoTo 0
End Function

Function GetRowCount (excelSH, rowCount) //获取行数
   Const  xlUp = -4162
   Const  xlToLeft = -4159
   Const  xlDown =  -4121
   Const  xlToRight  = -4161
   rowCount = excelSH.Range("A65536").End(xlUp).Row
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

5#
发表于 2008-9-1 22:24:21 | 只看该作者
Function OpenExcel (byRef excelSH, filePath, sheetName)
        On Error Resume Next
        Set excelApp = CreateObject("Excel.Application")
        excelApp.Visible = True
        Set excelWK = excelApp.Workbooks.Open(filePath)
        Set excelSH = excelWK.Worksheets(sheetName)
        On Error GoTo 0
End Function

Function GetRowCount (excelSH, rowCount)
    Const  xlUp = -4162
    Const  xlToLeft = -4159
    Const  xlDown =  -4121
    Const  xlToRight  = -4161
    rowCount = excelSH.Range("A65536").End(xlUp).Row
End Function
回复 支持 反对

使用道具 举报

该用户从未签到

6#
发表于 2008-9-1 23:00:25 | 只看该作者
导入表--》得到行数
DataTable.Import(FileName)
datatable.GetSheet("xxxx").GetRowCount
试试看行不?
回复 支持 反对

使用道具 举报

该用户从未签到

7#
发表于 2008-9-2 09:01:47 | 只看该作者
.UsedRange.Rows.Count
回复 支持 反对

使用道具 举报

该用户从未签到

8#
 楼主| 发表于 2008-9-2 09:39:35 | 只看该作者

回复 4# 的帖子

谢谢,有些疑问:
1文件路径必须为绝对路径吗?
2 -4162等等是什么意思呵呵
回复 支持 反对

使用道具 举报

该用户从未签到

9#
 楼主| 发表于 2008-9-2 09:41:01 | 只看该作者

回复 6# 的帖子

只要将文件名和sheet名写到里面就行了吗
回复 支持 反对

使用道具 举报

该用户从未签到

10#
 楼主| 发表于 2008-9-2 09:42:08 | 只看该作者

回复 7# 的帖子

UsedRange.Rows.Count前面是什么?sheet名就OK了吗
回复 支持 反对

使用道具 举报

该用户从未签到

11#
发表于 2008-9-2 10:06:52 | 只看该作者
原帖由 郝宁 于 2008-9-1 22:21 发表
自己写的方法,供你参考。。。
Function OpenExcel (byRef excelSH, filePath, sheetName)  //打开Excel对象
        On Error Resume Next
        Set excelApp = CreateObject("Excel.Application")
        excelApp.Visible = Tr ...


能解释下那些常量什么意思么
我用一个有5000行数据的excel去尝试了下,给的返回值是235行。。。
回复 支持 反对

使用道具 举报

该用户从未签到

12#
发表于 2008-9-2 11:31:27 | 只看该作者
原帖由 gjay1688 于 2008-9-2 09:42 发表
UsedRange.Rows.Count前面是什么?sheet名就OK了吗


对的
这样就能获取指定sheet里面存在的row的总数了
如果是列  用columns就可以了
回复 支持 反对

使用道具 举报

该用户从未签到

13#
发表于 2008-9-2 11:32:55 | 只看该作者
原帖由 郝宁 于 2008-9-1 22:24 发表
Function OpenExcel (byRef excelSH, filePath, sheetName)
        On Error Resume Next
        Set excelApp = CreateObject("Excel.Application")
        excelApp.Visible = True
        Set excelWK = excelApp.Workbooks.Open(file ...


有函数直接统计
何必这么麻烦呢

呵呵 不过还是顶一下
回复 支持 反对

使用道具 举报

本版积分规则

关闭

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

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

GMT+8, 2024-11-28 10:41 , Processed in 0.072534 second(s), 27 queries .

Powered by Discuz! X3.2

© 2001-2024 Comsenz Inc.

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