谁有没有从EXCEL里把数据导到SQL里的源码?(马上)???EXECL只要两三个例就行了?

解决方案 »

  1.   

    1、用Excel建立一个EXCEL文件,输入几条数据,第一行是字段名,然后关闭EXCEL,一定要关闭Excel。比如C:\abc.xls
    2、打开查询分析器,连接好。
    3、写如下sql语句:
    select * into ttt from opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\abc.xls";Extended Properties="'Excel 5.0;HDR=Yes;";Persist Security Info=False')...[Sheet1$]即可以将abc.xls的Sheet1里面的数据导入到表ttt中了。
      

  2.   

    在查询分析器里能实现,相信想在Delphi里实现你应该很清楚了。
      

  3.   

    Delphi执行一条SQL语句,改3个参数。Excel文件。sheet。数据表名。
      

  4.   

    可以适用于任何excel文件和任何表名,Excel文件,sheet和数据表名都可以动态设置。比如放一个ADOQuery。
    ADOQuery.sql.text:=Format('select * into [%s] from opendataSource('Microsoft.Jet.OLEDB.4.0','Data Source="%s";Extended Properties="'Excel 5.0;HDR=Yes;";Persist Security Info=False')...[%s$]
    ',[tbname,excelfile,sheetname]);
    ADOQuery.ExecSql;
      

  5.   

    procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    begin
      TxtConnection.Close;
      DBFConnection.Close;
      AccessConnection.Close;
      ExcelConnection.Close;
    end;procedure TForm1.AccessConnectionExecuteComplete(Connection: TADOConnection;
      RecordsAffected: Integer; const Error: Error;
      var EventStatus: TEventStatus; const Command: _Command;
      const Recordset: _Recordset);
    begin
      //记时1
      iT2 := GetTickCount;
      StatusBar.Panels[1].Text := FormatFloat('#,##', iT2 - iT1) + '毫秒';
      StatusBar.Panels[2].Text := '共导记录:' + IntToStr(RecordsAffected) + '条';
    end;procedure TForm1.AccessConnectionWillExecute(Connection: TADOConnection;
      var CommandText: WideString; var CursorType: TCursorType;
      var LockType: TADOLockType; var CommandType: TCommandType;
      var ExecuteOptions: TExecuteOptions; var EventStatus: TEventStatus;
      const Command: _Command; const Recordset: _Recordset);
    begin
      iT1 := GetTickCount;
    end;//=================================================================
    //Access
    //Access->TXT
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      sSql := 'select * into [Text;Database=f:\].aaa.txt from demo';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Access->DBF
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      sSql := 'select * into aaa in ''f:\'' ''dbase 5.0;'' from demo';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Access->Excel
    //注意:前一个aaa为Excel文件中的aaa页,后一个aaa为Access文件demo.mdb中的一个表名
    procedure TForm1.Button9Click(Sender: TObject);
    begin
      sSql :=
        'select * into aaa from aaa in ''E:\Delphilx\ADOSQL\PH\demo.mdb''';
      with ExcelConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Access->Access
    procedure TForm1.Button4Click(Sender: TObject);
    begin
      sSql := 'select * into aaa from demo in ''E:\Delphilx\ADOSQL\PH\demo.mdb''';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//TXT->Access
    procedure TForm1.Button2Click(Sender: TObject);
    begin
      sSql := 'select * into uform from [Text;Database=f:\].form.txt';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//DBF->Access
    procedure TForm1.Button5Click(Sender: TObject);
    begin
      sSql := 'select * into aaa from aaa in ''f:\'' ''dbase 5.0;''';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Excel->Access
    //[aaa$]->Excel文件aaa.xls中的aaa页
    procedure TForm1.Button10Click(Sender: TObject);
    begin
      sSql :=
        'select * into bbb from [excel 8.0;database=f:\aaa.xls].[aaa$]';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//=================================================================
    //Oracle
    //Oracle->Access
    procedure TForm1.Button6Click(Sender: TObject);
    begin
      sSql :=
        'select * into ouform from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Oracle->TXT
    procedure TForm1.Button7Click(Sender: TObject);
    begin
      sSql := 'select VGH,VXM,VMM into lsygb.txt from (select * from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;SERVER=BKLS;])';
    //  sSql :=
    //    'select * into form.txt from ouform in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bklskf;PWD=bklskf;SERVER=bkls;]';
      with TxtConnection do
        begin
          Close;
          Connected := True;
          Execute(sSql);
        end;
    end;//Oracle->Excel
    procedure TForm1.Button8Click(Sender: TObject);
    begin
      sSql :=
        'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
      with ExcelConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Oracle->DBF
    procedure TForm1.Button11Click(Sender: TObject);
    begin
      sSql :=
        'select * into aaa from lsygb in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;]';
      with DBFConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//TXT->Oracle
    //Oracle数据库注意要将表名大写!不然创建出来的表可以看到表名但无法打开
    procedure TForm1.Button12Click(Sender: TObject);
    begin
      sSql := 'select * into PH_TXT in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from ph_txt.txt';
      with TxtConnection do
        begin
          Close;
          Connected := True;
          Execute(sSql);
        end;
    end;//DBF->Oracle
    procedure TForm1.Button13Click(Sender: TObject);
    begin
      sSql :=
        'select * into PH_DBF in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
      with DBFConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Access->Oracle
    procedure TForm1.Button14Click(Sender: TObject);
    begin
      sSql :=
        'select * into PH_ACCESS in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
      with AccessConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;//Excel->Oracle
    procedure TForm1.Button15Click(Sender: TObject);
    begin
    //  'select * into MLB in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=BKLS;PWD=BKLS;Server=BKLS;] from MLB'
    //Provider=Microsoft.Jet.OLEDB.4.0;Data Source=f:\aaa.xls;Extended Properties=Excel 8.0;Persist Security Info=False
      sSql :=
        'select * into PH_EXCEL in [ODBC][ODBC;Driver={Microsoft ODBC for Oracle};UID=bkls;PWD=bkls;SERVER=bkls;] from aaa';
      with ExcelConnection do
        begin
          Connected := True;
          Execute(sSql);
        end;
    end;procedure TForm1.Button16Click(Sender: TObject);
    begin
      sSql := 'select * into qxb in ''f:\'' ''dbase 5.0;'' from lsqxb.txt';
      with TXTConnection do
        begin
    //      Close;
    //      ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0;Password="";Data Source=f:\temp;Extended Properties="text;HDR=YES;FMT=Delimited";Persist Security Info=True';
          Connected := True;
          Execute(sSql);
        end;
    end;end.
      

  6.   

    [email protected]写谢了,给人一份
      

  7.   

    不能用,报错服务器: 消息 170,级别 15,状态 1,行 1
    第 1 行: 'Excel' 附近有语法错误。
    服务器: 消息 105,级别 15,状态 1,行 1
    字符串 ';Persist Security Info=False')...[Sheet1$]
    ' 之前有未闭合的引号。
      

  8.   

    To :mastersky,
        可以给我一份代码吗?
        油箱是:[email protected],欢迎加油!!:)
      

  9.   

    也许我也没说明白!!!
    我要一个网格,打开EXECL后把里面的内容显示在里面!!!!
      

  10.   

    to:
       mastersky(浪)
    谢谢发的文件!
      

  11.   

    mastersky(浪) 我也想要一份,麻烦你了,谢谢
      

  12.   

    我也想要一份,
    [email protected]
    谢谢了!
      

  13.   

    我也想要一份阿!!
    [email protected]
    Thank you very much!