前段時間由於工作需要,設計了乙個基於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資料匯入到SQL 2005
前段時間由於工作需要,設計了乙個基於infopath sql的查詢系統,設計完成後,突然發現查詢系統所需要的原始資料都是存放在excel文件,如果將每條記錄重新輸入到sql中,那過程將非常繁瑣,通過在網路查詢得到二種方法,但過程還是不太方便。現將以下幾種方法彙總以下 一 在程式中,用ado.net。...
實現Excel資料匯入到SQL2005中的方法
第一步 登入到 sql server management studio 第二步 在 物件資源管理器 中右鍵單擊 管理 在彈出列表中單擊 匯入資料 第三步 在 匯入嚮導 對話方塊中單擊 下一步 進入到 選擇資料來源 對話方塊,在 資料來源 列表中選擇 microsoft 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...