Excel文件導入MSSQL數據庫

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, DB, ADODB, SMIBase, SMI2Cell, SMI2XLS, StdCtrls, ComObj,
  OleServer, ExcelXP, Grids, DBGrids;

type
  TForm1 = class(TForm)
    ADOConnection1: TADOConnection;
    tblTA: TADODataSet;
    DataSource1: TDataSource;
    Button1: TButton;
    DBGrid1: TDBGrid;
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure ExcelToSqlserver(FileName : String);
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
begin
  //IXLS
  ExcelToSqlserver('E:/dev.xls')
end;

procedure TForm1.ExcelToSqlserver(FileName: String);
var      
  I, J : Integer;      
  ExcelApplication1 : TExcelApplication;
  ExcelWorksheet1 : TExcelWorksheet;
  ExcelWorkbook1 : TExcelWorkbook;
begin
  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,EmptyParam,EmptyParam,0));
       
      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
      ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
  Except
      Exit;
  end;
  I := 2;//開始導入行數
  J := ExcelWorksheet1.UsedRange[1].Rows.Count;
  //J := ExcelWorksheet1.Cells.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列.
                      ]);
          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;

end.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章