51Testing软件测试论坛

标题: 如何取得本地,excel文件中所使用的行数和列数? [打印本页]

作者: mowandao1985    时间: 2010-7-30 11:46
标题: 如何取得本地,excel文件中所使用的行数和列数?
我想通过在QTP中写代码,输出本地一个excel文件中到底使用了几行和几列,
作者: feiyunkai    时间: 2010-7-30 14:37
标题: 代码如下:
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 编辑 ]
作者: mowandao1985    时间: 2010-7-30 15:39
谢谢楼上朋友解答,确实是个好方法。
不过在你解答之前我自己写了个方法来实现(有点笨的方法):
其实下面的方法是有缺陷的:当有个有个空格没有数据,然后下个一个空格又有数据的就不能使用这个方法啦,因为遇到循环时就会退出循环。
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




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