回 帖 发 新 帖 刷新版面

主题:急!!DELPHI中的EXCEL问题!!

请哪位大虾出手相助一下!
用EXCELAPPLICATION,EXCELWORKSHEET,EXCELWORKBOOK这三个控件如何将EXCEL里的数据以行的方式通过DBGIRD插入数据库!!!!!

回复列表 (共2个回复)

沙发

哪位大虾来帮帮忙啊 1!!!
我一个快要成型的数据库应用软件基本功能现在就差这个了 !!!
拜托了!!!!!!!!!!!!!!!!

板凳

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;

我来回复

您尚未登录,请登录后再回复。点此登录或注册