51Testing软件测试论坛

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

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3467|回复: 2
打印 上一主题 下一主题

[原创] 如何取得本地,excel文件中所使用的行数和列数?

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2010-7-30 11:46:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我想通过在QTP中写代码,输出本地一个excel文件中到底使用了几行和几列,
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

  • TA的每日心情
    奋斗
    2014-12-18 10:31
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    2#
    发表于 2010-7-30 14:37:48 | 只看该作者

    代码如下:

    Set  excel=CreateObject("Excel.Application")
    set openexcel=excel.Workbooks.Open("这里输入EXCEL路径")
    rowcount =openexcel.ActiveSheet.UsedRange.Rows.Count
    Columnscount =openexcel.ActiveSheet.UsedRange.Columns.count
    print " 行数:"&rowcount&"  列数:"&Columnscount
    openexcel.Close
    excel.Quit
    set openexcel=nothing
    Set  excel=nothing

    '若想要获取Excel中指定sheet的行数和列数,函数如下:
    Public function getrowandcol(filepath,sheetname)
    '函数作用:获取EXCEL指定sheet的行数和列数
    '参数说明
    'filepath:EXCEL所在路径
    'sheetname:需要统计行数和列数的SHEET名称
    '用法示例:getrowandcol"D:\qqq.xlsx","sheet1"

    Set  excel=CreateObject("Excel.Application")
    set openexcel=excel.Workbooks.Open(filepath)
    openexcel.WorkSheets(sheetname).Activate
               rowcount =openexcel.ActiveSheet.UsedRange.Rows.Count
               Columnscount =openexcel.ActiveSheet.UsedRange.Columns.count
    If openexcel.WorkSheets(sheetname).Cells(1,1 )="" and rowcount=1 and Columnscount=1 then
               print sheetname&"中没有数据"
    else
               print sheetname&"的行数为:"&rowcount&"  列数:"&Columnscount
    end if
    openexcel.Close
    excel.Quit
    set openexcel=nothing
    Set  excel=nothing

    End Function

    '说明,若sheet中没有数据,则默认为1行1列,可以写个判断语句,避免没有数据时行数和列数显示为1。见函数中红色代码

    [ 本帖最后由 feiyunkai 于 2010-7-30 17:16 编辑 ]
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3#
     楼主| 发表于 2010-7-30 15:39:27 | 只看该作者
    谢谢楼上朋友解答,确实是个好方法。
    不过在你解答之前我自己写了个方法来实现(有点笨的方法):
    其实下面的方法是有缺陷的:当有个有个空格没有数据,然后下个一个空格又有数据的就不能使用这个方法啦,因为遇到循环时就会退出循环。
    Dim rowCount
    rowCount = 0
    For i=1 to 1000 '‘1000是自己定义的一个有数据时的最大行数或列数,也可以定义成无穷大
            isover =  ss.EXCLE_read(syspath,sheet,1,i) ’检查第一行的所有列是否有数据
            If Isempty(isover)Then
                 Exit For ‘如果没有数据退出循环。
            End If
            rowCount = rowCount+1
    Next
    msgbox rowCount
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

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

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

    GMT+8, 2024-11-26 13:47 , Processed in 0.072007 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

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