Excel與資料庫操作

2021-04-14 15:36:43 字數 1725 閱讀 8413

vc6.0中用ado操作excel的連線字串:

"dsn

=excel files;dbq

=filepath

+filename;defaultdir

=filepath;driver id

=790

;maxbuffersize

=2048

;pagetimeout=5

;" 例如:

dsn=excel files;dbq

=d://t_20071122.xls;defaultdir

=d://;driverid

=790

;maxbuffersize

=2048

;pagetimeout=5

; 建立乙個這樣的連線物件,就可以把excel當作乙個資料庫進行操作,其中每乙個worksheet相當於資料庫中一張表,在操作這些sheet時,需要用將sheet名+$包含起來,比如:select * from [totalprice$]

在.net中操作excel很方便,ado.net把大部分繁雜的工作都替我們做了,

c#.net中用ado.net操作excel連線字串:

provider

=microsoft.jet.oledb.

4.0;data source="

+ datafilepath + 

";extended properties

=excel 

8.0;

實際上,上面的操作都需要用到ms的jet引擎,上面的連線串在有jet的情況下就可以操作成功,不過jet的執行效能不高,所以,還有乙個效能比較高但是有條件限制的sql語句(內嵌連線字串),就是sqlserver的dts

條件,執行機器上需要有sql

語句:select

*from

openrowset('

microsoft.jet.oledb.4.0',

'excel 8.0;hdr=no;database=excelfilepath;

',worksheetname$)

例如:insert

into

t_wcall_log(up_id,up_num,up_result,sn_id)

select

*from

openrowset('

microsoft.jet.oledb.4.0',

'excel 8.0;hdr=no;database=d://bc_call.xls;

',統計$)

其中select子句中的*可以用excel中的列名列表代替,當把excel中的worksheet當資料表處理的時候,需要在後面加上$,而且此時的worksheet名不能以數字開頭,否則將出現錯誤:在***中不存在表xx

如果要將資料由本地提交到區域網伺服器上,可以將excel所在的資料夾設定為共享,然後用「ip/檔名」替換掉上面的excelfilepath,如:

select

*from

openset(

'microsoft.jet.oledb.4.0',

'excel 8.0;hdr=no;database=192.168.0.113//bc_call.xls;

',統計$)

其原理是利用本地sql和伺服器sql之間的dts進行傳輸操作,實際上和把資料放到本地sql,然後再傳到伺服器sql是一樣的,只不過,用上面的語句可以利用一下sql的記憶體表,資料直接過記憶體傳輸,而不產生真正的資料表

excel匯入資料庫

在你的 中增加一列,利用excel的公式自動生成sql語句 concatenate 函式 具體方法如下 1 增加一列 假設是d列 2 在第一行的d列,就是d1中輸入公式 concatenate insert into table col1,col2,col3 values a1,b1,c1,3 此時...

Excel匯入資料庫

一 在excel中 新建一列,如把列名定為ab,下面放你的資料,比如1,2,3 二 開啟sql企業管理器,右擊你所需要匯入的資料庫,選擇匯入資料,下一步,資料來源選擇microsoft eccel 97 2000,選擇excel檔案繼續下一步,往下按,選擇sheet1 或者2,3 看你把資料放在那一...

excel匯入資料庫

日常工作中,感覺一些基礎知識需要做下筆記,可能是剛畢業的緣故吧,還保持著做筆記的習慣,但根據以往經驗,紙質筆記最多保持一年,過後想找已是難過登天。電子版筆記感覺很不錯,尤其是發布到網路中。筆記內容是本人遇到的感覺可能會有些用的東西,很是瑣碎,記錄在中,僅供學習參考。1 將資料庫中的內容顯示到乙個窗體...