主题:急!!DELPHI中的EXCEL问题!!
zimo
[专家分:240] 发布于 2007-04-11 10:44:00
请哪位大虾出手相助一下!
用EXCELAPPLICATION,EXCELWORKSHEET,EXCELWORKBOOK这三个控件如何将EXCEL里的数据以行的方式通过DBGIRD插入数据库!!!!!
回复列表 (共2个回复)
沙发
zimo [专家分:240] 发布于 2007-04-11 16:27:00
哪位大虾来帮帮忙啊 1!!!
我一个快要成型的数据库应用软件基本功能现在就差这个了 !!!
拜托了!!!!!!!!!!!!!!!!
板凳
hanzhijun402 [专家分:3690] 发布于 2007-04-19 15:48:00
procedure TForm1.Button1Click(Sender: TObject);
var
j:integer;
msexcel:variant;
msexcelworkbook:variant;
msexcelworksheet:variant;
begin
msexcel:=createoleobject('Excel.application');
msexcelworkbook:=msexcel.workbooks.add;
msexcelworksheet:=msexcel.workbooks[1].worksheets[1];
msexcelworksheet.Activate;
msexcel.visible:=true;
with adoquery_rs do
begin
close;
sql.clear;
sql.add('select empno as 员工编号,empname as 员工名称,empengname as 英文名称 from rs_emp');
open;
First;
end;
try
msexcelworksheet.range['A1'].value:='员工编号';
msexcelworksheet.range['B1'].value:='员工名称';
msexcelworksheet.range['C1'].value:='英文名称';
j:=1;
while not adoquery_rs.Eof do
begin
msexcelworksheet.range['A'+inttostr(j+1)].value:=adoquery_rs.FieldByName('员工编号').asstring;
msexcelworksheet.range['B'+inttostr(j+1)].value:=adoquery_rs.FieldByName('员工名称').asstring;
msexcelworksheet.range['C'+inttostr(j+1)].value:=adoquery_rs.FieldByName('英文名称').asstring;
j:=j+1;
adoquery_rs.Next;
end;
finally
showmessage('请先关闭已打开的指示书Excel文件!');
msexcelworksheet:=null;
msexcel.workbooks.close;
msexcelworkbook:=null;
msexcel:=null;
end;
end;
我来回复