delphi如何把excel表导入sql server里面???
delphi如何写代码实现.谢谢各位..

解决方案 »

  1.   

    1.创建2个ADO连接,从Excel读数后写入SQL Server
    2.用SQL的OpenDataSource函数
    SELECT * 
    FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$
    3.用SQL的SSIS
      

  2.   

    liangpei2008 
    已经说了
    还可以用server 下的控件  不过速度相对慢一点,用流的话速度最快或者可用SQL SERVER下的DTS包转换
      

  3.   

    procedure TForm1.Button1Click(Sender: TObject);
    var
      sql:string ;
    begin
    try
      ADOConnection1.Provider :='Microsoft.Jet.OLEDB.4.0;Data Source=C:\temp\Temp.xls;Extended ' +
         'Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False' ;
      ADOConnection1.Connected := False ;
      ADOConnection1.Connected := True ;
      sqll := 'SELECT * into SQLEXCEL FROM ' +
        'OpenDataSource(''Microsoft.Jet.OLEDB.4.0'',''Data Source="C:\temp\Temp.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False'')...sheet1$' ;
      ADOConnection1.Execute(sql ) ;
      Application.MessageBox('导出数据成功  !', PChar('数据导入导出提示'), MB_OK +
        MB_ICONINFORMATION + MB_TOPMOST);
    except
      Application.MessageBox('导出数据失败  !', PChar('数据导入导出提示'), MB_OK +
      MB_ICONINFORMATION + MB_TOPMOST);
    end;
    end;
      

  4.   

    对于Excel与表的结构不同的可以用代码实现.
    参照一下这里面的内容
    http://topic.csdn.net/u/20080112/10/93eddbf1-cbd7-4cf0-81d1-ac6cf1c0d68d.html
      

  5.   

    procedure TForm1.btn1Click(Sender: TObject);
    var   
          i,j:   integer;   
          ExcelApplication1:TExcelApplication;   
          ExcelWorksheet1:TExcelWorksheet;   
          ExcelWorkbook1:TExcelWorkbook;   
          filename:   string;
    begin
          btn2Click(Self);
          filename:=Edt_1.Text;//文件名
          try
              ExcelApplication1:=TExcelApplication.Create(Application);
              ExcelWorksheet1:=TExcelWorksheet.Create(Application);
              ExcelWorkbook1:=TExcelWorkbook.Create(Application);   
              ExcelApplication1.Connect;   
          except
              Application.Messagebox('Excel没有安装!',   'Hello',   MB_ICONERROR   +   mb_Ok);   
              Abort;   
          end;   
        
          Try   
                ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Open(fileName,EmptyParam,EmptyParam,   
                          EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,   
                          EmptyParam,EmptyParam,EmptyParam,EmptyParam,0));   
        
              ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
              ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]   as   _worksheet);
          Except
              Exit;
          end;
          i   :=2;//开始导入行数
           j := ExcelApplication1.Rows.Count;
          try
             tblTA.Open;   //要导入的表
              while   i<=j   do
                begin   
                  if   trim(ExcelWorksheet1.cells.item[i,1])<>''   then   
                      begin   
                          tblTA.AppendRecord([
                              ExcelWorksheet1.Cells.Item[i,1],//第i行第1列.
                              ExcelWorksheet1.Cells.Item[i,2],//第i行第2列.
                              ExcelWorksheet1.Cells.Item[i,3],//第i行第3列.
                              ExcelWorksheet1.Cells.Item[i,4],//第i行第1列.
                              ExcelWorksheet1.Cells.Item[i,5],//第i行第2列.
                              ExcelWorksheet1.Cells.Item[i,6],//第i行第3列.
                              ExcelWorksheet1.Cells.Item[i,7],//第i行第1列.
                              ExcelWorksheet1.Cells.Item[i,8],//第i行第2列.
                              ExcelWorksheet1.Cells.Item[i,9],//第i行第3列.
                              ExcelWorksheet1.Cells.Item[i,10],//第i行第3列.
                              ExcelWorksheet1.Cells.Item[i,11]//第i行第3列.
                              ]);
        
                      end   else Break;
                      Inc(i);
              end;   
          finally
              tblTA.close;
              tblTA.Open;
              showMessage('数据导入完毕!');
          end;   
        
          try
              ExcelApplication1.Disconnect;
              ExcelApplication1.Quit;
              ExcelApplication1.Free;
              ExcelWorksheet1.Free;
              ExcelWorkbook1.Free;
          except
              showMessage('关闭出错!');
          end;end;