delphi中如何把excel中的数据导入access数据库中,求原程序

解决方案 »

  1.   

    uses ComObj;//------------------不要忘了procedure TForm1.Button1Click(Sender: TObject);
    var
     a_cc: TStrings;
     ExcelApp: Variant;
    begin
     if OpenDialog1.Execute then begin
       {打开保存一次EXCEL文件}
        ExcelApp := CreateOleObject( 'Excel.Application' );
        ExcelApp.WorkBooks.Open(OpenDialog1.FileName);
        ExcelApp.ActiveWorkBook.Save;
        ExcelApp.Quit;
        varclear(ExcelApp);
        
       a_cc :=TStringList.Create;
        {ADOConn是数据库连接控件ADOConnection}
        ADOConn.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + OpenDialog1.FileName + ';Extended Properties=excel 8.0;Persist Security Info=false';
        ADOConn.Connected := True;
        ADOConn.GetTableNames(a_cc);{将EXCEL文件中的表格名单赋值于a_cc变量}
        with adoquery2 begin
             Close;
             sql.text:='select * from ['+a_cc[0]+']';//得到EXCEL文件中的第一个表格的数据
              open;
          while not eof begin
          adoquery1.Append;
          adoquery1.FieldByName('xf_a').AsString:=FieldValues['工号'];
          adoquery1.FieldByName('xf_b').AsString:=FieldValues['姓名'];
          adoquery1.FieldByName('xf_c').AsString:=FieldValues['部门'];    
          adoquery1.post;  
          next;
          end;
          close;
        end;
         
       adoconn.Connected:=false;
       a_cc.Free;
       messagebox(handle,'数据处理完毕','提示',MB_OK+MB_ICONINFORMATION);
                     end;
    end;
      

  2.   

    adoquery2是ACCESS中的表,ADOQUERY1是连EXCEL文件的表,显示为中文的是EXCEL中的字段
      

  3.   

    哎呀,写错了,应该这样:
    adoquery1是ACCESS中的表,ADOQUERY2是连EXCEL文件的表,显示为中文的是EXCEL中的字段