如何得到一个excel文件中当前工作表的数据行列数?(100分)

  • 主题发起人 主题发起人 number1
  • 开始时间 开始时间
N

number1

Unregistered / Unconfirmed
GUEST, unregistred user!
如何得到一个excel文件中当前工作表的数据行列数?找到几种方法都不是很有效.
我的语句是这样写的,
i:=v.ActiveSheet.UsedRange.Rows.Count;
可是得到的数据如果一个空表,返回值还是1,如果第1行有数据返回值也是1,如果数据多了,好象还行.这是怎么回事?呢,帮帮兄弟我。谢谢.
 
莫非第一行表示字段?不统计?
 
第一行一般用来做字段的:
procedure GetFieldsFromXls(var Lst: TStrings);
var
MsExcel, MsExcelWorkBook, MsExcelWorkSheet: Variant;
i: Integer;
begin

MsExcel := CreateOleObject('Excel.Application');
try
MsExcelWorkBook := msExcel.Workbooks.Open(EdtFile.Text);
MsExcelWorkSheet := msExcel.Worksheets.Item[1];
with Lstdo

begin

Clear;
for i := 1 to MsExcelWorkSheet.UsedRange.Columns.Countdo

Add(MsExcel.Cells[1, i].Value);
end;

finally
MsExcel.Quit;
end;

end;
 
傻瓜式遍历单元格怎么样?
 
某些时候,ActiveSheet.UsedRange.Rows.Count 并不能精确的得到数据行数。
比如:你把某些Excel行的行高变大,虽然这些行中没有数据,但是得到数据行数也会包含这些行的。
 
楼上说的有道理,我也遇到过这种情况,只能是写代码把读到的空行忽略掉。
 
后退
顶部