Excel資料匯入到SQL 2005

2021-04-14 08:53:11 字數 2160 閱讀 3000

前段時間由於工作需要,設計了乙個基於infopath+sql的查詢系統,設計完成後,突然發現查詢系統所需要的原始資料都是存放在excel文件,如果將每條記錄重新輸入到sql中,那過程將非常繁瑣,通過在網路查詢得到二種方法,但過程還是不太方便。現將以下幾種方法彙總以下:

一、在程式中,用ado.net。**如下:

//連線串

string strconn = "provider=microsoft.jet.oledb.4.0;extended properties=excel 8.0;data source=" + [excel檔案,含路徑] + ";";

oledbconnection conn = new oledbconnection(strconn);

conn.open();

datatable dtschema = conn.getoledbschematable(oledbschemaguid.tables,new object );

dataset ds = new dataset();

//乙個excel檔案可能有多個工作表,遍歷之

foreach( datarow dr in dtschema.rows )

conn.close();

這樣,讀取出來的資料就藏在dataset裡了。

採用這種方式,資料庫所在機器不必裝有excel。

二、在查詢分析器裡,直接寫sql語句:

如果是匯入資料到現有表,則採用

insert into

表select * from openrowset('microsoft.jet.oledb.4.0'

,'excel 5.0;hdr=yes;database=c:/test.xls',sheet1$)

的形式

如果是匯入資料並新增表,則採用

select * into

表from openrowset('microsoft.jet.oledb.4.0'

,'excel 5.0;hdr=yes;database=c:/test.xls',sheet1$)

的形式。

以上語句是將excel檔案裡sheet1工作表中所有的列都讀進來,如果只想導部分列,可以

insert into

表(a1,a2,a3) select a1,a2,a3 from openrowset('microsoft.jet.oledb.4.0'

,'excel 5.0;hdr=yes;database=c:/test.xls',sheet1$)

其實可以將openrowset('microsoft.jet.oledb.4.0'

,'excel 5.0;hdr=yes;database=c:/test.xls',sheet1$)

當成乙個表,例如我就寫過這樣乙個句子:

insert into eval_channel_employee(channel,employee_id)

select case a.

渠道when 'diy' then 1 when 'rdc' then 0 when 'kcm' then 2 else 3 end

,b.id from

openrowset('microsoft.jet.oledb.4.0'

,'excel 5.0;hdr=yes;database=c:/temp/name.xls',sheet1$) as a,pers_employee b

where a.

員工編碼

=b.code

不管是哪種方式,哪種途徑,系統都會預設將第一行上的內容作為欄位名。

這二種方式雖然非常好,但操作過程不太方便,經過測試發現在sql2005中直接可以實現匯入功能。操作過程如下:

第一步:登入到sql server management studio,

第二步:在「物件資源管理器」中右鍵單擊「管理」,在彈出列表中單擊「匯入資料」

第三步:在「匯入嚮導」對話方塊中單擊「下一步」,進入到「選擇資料來源」對話方塊,在「資料來源」列表中選擇「microsoft excel 」,同時選擇相應的excel 文件,完成後單擊「下一步」(一定要勾選該對話方塊中的「首行包含列名稱」,因此它是將excel文件中的列標題為資料庫表中的列項標題)

第五步:重新打到sql server management studio,進入到匯入的資料庫表,可以發現所匯入的excel文件資料。

Excel資料匯入到Grid

方法一 string strcon provider microsoft.jet.oledb.4.0 data source strsource extended properties excel 8.0 string query select from sheet1 sheet1表示表 oledb...

Excel資料匯入到Access

下面是asp的全部程式,需要做的是建乙個test.mdb資料庫和乙個test.xls的excel 查詢excel準備匯入到access sql select from sheet1 要匯入的excel資料裡面的表的名稱,後面一定要加 set rs conn2.execute sql while no...

Excel資料匯入到oracle

excel資料匯入到oracle 第一步 將要匯入的excel檔案開啟,選擇 另存為 在檔案型別那裡選擇 文字.txt 後確定儲存 第二步 開啟記事本,編寫下列的內容 注釋 1 控制檔案標識 2 剛才由excel檔案轉化過來的檔案的路徑 3 向oracle的資料表t network agent ba...