我用delphi一年多了,最近编制工资程序,用到了整批数据的导出和导入问题,不知道用什么控件和设置?用的是oracle数据库.
我想把execl中的数据导入oracle中,再从oracle中导到execl中,主要是能在程序中控制!

解决方案 »

  1.   

    SELECT * 
    FROM OpenDataSource( 'Microsoft.Jet.OLEDB.4.0',
      'Data Source="c:\Finance\account.xls";User ID=Admin;Password=;Extended properties=Excel 5.0')
      

  2.   

    execl中的数据导入oracle中
    procedure TForm1.ExcelToData(Caption: string;
      ADOQueryTest: TADOQuery);
    var
      ConnectionString1, Textstring, AStress: string;
      num: integer;
    begin
      if OpenDialog1.Execute then
      begin
        AStress := OpenDialog1.FileName;
        //连接Excel
        ConnectionString1 := 'Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;'
          + 'Data Source=' + AStress + ';Extended Properties=Excel 8.0';
        showmessage(ConnectionString1);
        ADOConnection2.ConnectionString := ConnectionString1;    //打开Excel数据集
        adoquery1.close;
        adoquery1.sql.clear;
        //确定那个sheet
        Textstring := 'select * from [' + Caption + '$]';    showmessage(Textstring);
        adoquery1.sql.add(Textstring);
        adoquery1.open; //打开连接execl表的数据集    adoquery1.first; //移动到第一个记录    //逐条记录添加
        while (not adoquery1.eof) do
        begin
          ADOQueryTest.open;
          ADOQueryTest.append;
          for num := 0 to adoquery1.FieldCount - 1 do //逐个字段添加
          begin
            ADOQueryTest.Fields[num].value := adoquery1.Fields[num].value;
            //注意,如果是自动增加字段不能如此赋值
          end;
          ADOQueryTest.post;
          adoquery1.next; //移动到下一条记录
        end;
      end;
    end;procedure TForm1.Button5Click(Sender: TObject);
    begin
        ExcelToData('磨具', ADOQuery2)
    end;
      

  3.   

    adoconnection
    adoquery
    execlapplication
    execlworkbook
    execlworksheet