excel中資料匯入sqlserver

2021-06-18 16:05:02 字數 1245 閱讀 9861

將oledb讀取的excel資料快速插入的sqlserver中,很多人通過迴圈來拼接sql,這樣做不但容易出錯而且效率低下,最好的辦法是使用bcp,也就是system.data.sqlclient.sqlbulkcopy 類來實現。不但速度快,而且**簡單,下面測試**匯入乙個6萬多條資料的sheet,包括讀取(全部讀取比較慢)在我的開發環境中只需要10秒左右,而真正的匯入過程只需要4.5秒。

using system;

using system.data;

using system.windows.forms;

using system.data.oledb;

private void button1_click(object sender, eventargs e)

}public void transferdata(string excelfile, string sheetname, string connectionstring)

$]", sheetname);

mycommand = new oledbdataadapter(strexcel, strconn);

mycommand.fill(ds, sheetname);

//如果目標表不存在則建立

string strsql = string.format("if object_id('') is null create table (", sheetname);

foreach (system.data.datacolumn c in ds.tables[0].columns)

] varchar(255),", c.columnname);

}strsql = strsql.trim(',') + ")";

using (system.data.sqlclient.sqlconnection sqlconn = new system.data.sqlclient.sqlconnection(connectionstring))

//用bcp匯入資料

using (system.data.sqlclient.sqlbulkcopy bcp = new system.data.sqlclient.sqlbulkcopy(connectionstring))

}catch (exception ex)

}//進度顯示

void bcp_sqlrowscopied(object sender, system.data.sqlclient.sqlrowscopiedeventargs e)}}

Excel資料匯入

excel資料匯入 你hold住麼 一 在本篇將帶領大家一同了解 匯入excel流程和問題解決方案 需要注意的是在server端的web config 中新增這幾行 ps 中value 是根據自己的專案中的資料夾的命名而定,可參考以下截圖 由於在server的配置檔案的檔名不一致。找不excel的x...

Excel資料匯入

private void button3 click object sender,eventargs e 連線excel的連線字串,excel2007版本以上的 hdr yes代表第一行是列名 string strconn provider microsoft.ace.oledb.12.0 data...

excel資料匯入

hssfworkbook wookbook new hssfworkbook new fileinputstream filetemppath 建立工作簿的引用 hssfsheet sheet wookbook.getsheet sheet1 獲取到excel檔案中的所有行數 int rows sh...