今天,有個專案需要核對一些資料,核對excel檔案中的某一列資料是否存在於資料庫中的某個表,這查詢起來實在太煩,雖然只有千把條記錄,逐個到資料庫里查,也要花個大半天時間。於是寫了個小工具,將excel檔案中需要的列讀出來,寫入到資料庫中,專案中用的是ibm db2,這個可以根據需要進行修改,然後再進行表聯合查詢,就省事多了。
我訪問excel檔案使用的方式是oledb方式,沒有用office元件。
首先加入namespace:
code
using
system.data.oledb;
定義連線字串:
code
string
filepath =@"
c:\employee.xls";
string
strconn ="
provider=microsoft.jet.oledb.4.0;data source="+
filepath +"
;extended properties='excel 8.0;hdr=yes;imex=1;'";
選擇excel檔案中的乙個sheet,比如叫「employeeinfo」:
code
string
strsheetname ="
employeeinfo";
string
strexcel ="
select * from ["+
strsheetname +"
$] "
;開啟連線,讀取excel檔案中資料到dataset中,然後關閉連線:
code
oledbconnection conn
=new
oledbconnection(strconn);
conn.open();
oledbdataadapter adapter
=new
oledbdataadapter(strexcel, conn);
dataset ds
=new
dataset();
adapter.fill(ds,
"data");
conn.close();
寫到db2資料庫中,假定資料庫已經建好,並且表test也已經建好:
code
string
connstring ="
provider=ibmdadb2;database=toolsdb"+
";hostname=localhost;protocol=tcpip;port=50000;uid=db2admin;pwd=123456;";
oledbconnection db2conn
=new
oledbconnection(connstring);
oledbcommand db2comm
=new
oledbcommand();
db2conn.open();
db2comm.connection
=db2conn;
db2comm.commandtimeout
=600
;for
(inti =
0; i
<
ds.tables[
0].rows.count; i++)
db2conn.close();
這樣就把excel表中的資料插入到資料庫中了。
上傳Excel檔案並匯入到資料
上傳檔案 上傳excel檔案 protected void btnfileload click object sender,eventargs e catch exception ex else 匯入檔案 將excel中的檔案匯入到資料庫 protected void btninsertdata c...
匯出資料到excel檔案
1 繫結事件,引數為模糊查詢中使用ng model繫結的資料 匯出2 使用 scope.引數 scope.searchwhere 3 匯出excel 全部 exporthrsalaryzz scope.exportdatas function searchwhere headers 響應型別 res...
C 讀Excel文件的資料
c 讀excel文件的資料 string strpath this.txtpath.text.trim string strexcelname this.txtexcelname.text.trim string strexceldocname this.txtexceldocname.text.t...