資源描述:
《excel批量導(dǎo)入數(shù)據(jù)庫(kù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、系統(tǒng)中需要用到Excel整體導(dǎo)入的功能整體的核心思路如下:1、首先將需要導(dǎo)入的Excel上傳至服務(wù)器2、為了避免文件名重復(fù),重命名上傳的Excel文件3、將上傳的Excel文件讀入DataTable中4、將DataTable讀入數(shù)據(jù)庫(kù)中實(shí)現(xiàn)起來(lái)還是比較簡(jiǎn)單的,核心代碼如下:界面需要一個(gè)FileUpload控件和一個(gè)Button界面代碼:viewplain1usingSystem;2usingSystem.Data;34namespaceWebApplication15{6publicpartialclassWebForm1:Sy
2、stem.Web.UI.Page7{8protectedvoidPage_Load(objectsender,EventArgse)9{101112}13protectedvoidbtnUpload_Click(objectsender,EventArgse)14{15stringpath=Server.MapPath("~/upload/");16//根據(jù)日期時(shí)間重命名文件17stringfileName=DateTime.Now.ToString("yyyymmddhhMMss")+FileUpload1.FileName;18ExcelManagerem=newExcelMana
3、ger(path+fileName);1920FileUpload1.PostedFile.SaveAs(path+fileName);//另存文件21DataTabledtTable=em.ExecuteGetDataTable(fileName);22em.WriteToDB("studentInfo",dtTable);//導(dǎo)入數(shù)據(jù)庫(kù)23}24}25}26Excel導(dǎo)入數(shù)據(jù)庫(kù)控制類其中需要注意的是1、連接Excel字符串中HDR的值表示是否有表頭,YSE表示導(dǎo)入的EXCEL包括表頭,NO反之。2、IMEX的值有三個(gè)當(dāng)IMEX=0時(shí)為“匯出模式”,這個(gè)模式開(kāi)啟的Exc
4、el只能用來(lái)做“寫入”用途。當(dāng)IMEX=1時(shí)為“匯入模式”,這個(gè)模式開(kāi)啟的Excel只能用來(lái)做“讀取”用途。當(dāng)IMEX=2時(shí)為“連結(jié)模式”,這個(gè)模式開(kāi)啟的Excel可同時(shí)支持“讀取”與“寫入”用途。這里是EXCEL導(dǎo)入,對(duì)于EXCEL是讀取操作,即IMEX=0。viewplain1usingSystem.Data.OleDb;2usingSystem.Data;3namespaceWebApplication14{56///7///excel導(dǎo)入數(shù)據(jù)庫(kù)控制類8///9publicclassE
5、xcelManager10{1112//定義連接13OleDbConnectionoledbConn=null;14///15///構(gòu)造函數(shù),初始化連接,給連接賦上地址16///17///18publicExcelManager(stringfileUrl)19{2021stringstrConn="Provider=Microsoft.Jet.Oledb.4.0;"+"datasource="+fileUrl+";ExtendedProperties='Excel8.0;HDR=NO;IM
6、EX=1'";22oledbConn=newOleDbConnection(strConn);23}2425///26///連接Excel表的方法27///28///29publicOleDbConnectionGetCon()30{31if(oledbConn.State==ConnectionState.Closed)32{1oledbConn.Open();2}3returnoledbConn;4}56///7///將上傳的Excel數(shù)據(jù)導(dǎo)入到DataTable中8///7、y>9///10///11publicDataTableExecuteGetDataTable(stringfileName)12{1314DataSetds=newDataSet();15OleDbDataAdapteroledbda=newOleDbDataAdapter("select*from[Sheet1$]",GetCon());16o