excel导入数据库时如何判断导入的excel里有多少记录?这循环要怎么写?(100分)

G

guguda

Unregistered / Unconfirmed
GUEST, unregistred user!
excel导入sql server数据库。
就是要做一个判断,当excel里的记录没有到最后一条记录就一条条的循环导入,当到最后一条并导入后就停止导入。这个循环的代码要怎么写?
我以前用的是 for i:=2 to 10000 do 但有时记录只有2000条,这样就会出现空的记录导入数据库。问题要如何解决?
谢谢。
 
在用OLE方法连接Excel的时候,可以用如下方法得到Excel的行数,列数:
Maxc :=ExlApp.WorkSheets[1].UsedRange.Columns.Count;
Maxr :=ExlApp.WorkSheets[1].UsedRange.Rows.Count;
行数也就是记录数了。
 
ExcelWorkSheet1.UsedRange[0].Columns.Count;
ExcelWorkSheet1.UsedRange[0].Rows.Count;
这个值也不是很准确,还要在读取前对第一行第一列有值是才正确
所以
var
str:string;
begin
str:=ExcelWorkSheet1.Cells.Item[1,1].Value;
if str='' then //如果为空,加一点
ExcelWorkSheet1.Cells.Item[1,1].Value:=''''; //这一点有Excel不会显示的
end;


 
可以这样,先测试一下是不是最后一条记录,如果不是就进行导数据处理
while not query1.eof do
begin
query1.next //EXCEL的下一条
if query1.eof then abort //如果到底了就退出
else
begin
...... //导数据处理
end;
end;
不难吧
 
//从第一行到最后一行
row:=1;
while trim(string(ExcelWorksheet1.cells.item[row,1]))<>''do
begin
ADOQuery.FieldByName('Name').AsString:=trim(string(ExcelWorksheet1.cells.item[row,1]));
......
inc(row);
end;
你可以加判断条件
有什么不对的还请指正

 
多人接受答案了。
 
顶部