mowandao1985 发表于 2010-7-30 11:46:57

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

我想通过在QTP中写代码,输出本地一个excel文件中到底使用了几行和几列,

feiyunkai 发表于 2010-7-30 14:37:48

代码如下:

Setexcel=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
Setexcel=nothing

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

Setexcel=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
Setexcel=nothing

End Function

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

[ 本帖最后由 feiyunkai 于 2010-7-30 17:16 编辑 ]

mowandao1985 发表于 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]
查看完整版本: 如何取得本地,excel文件中所使用的行数和列数?