當前位置:首頁 » 操作系統 » net導入excel到資料庫

net導入excel到資料庫

發布時間: 2025-06-27 18:55:37

A. C#.NET Excel文件數據導入sql Server資料庫完整代碼

在日常的項目中,Excel,Word,txt等格式的數據導入到資料庫中是很常見

這里將分為.net導入Sql Server,Oracle資料庫和WinForm導入Sql Server,Oracle資料庫。

實現的基本思想:

1,先使用FileUpload控制項fuload將Excel文件上傳到伺服器上得某一個文件夾

2,使用OleDb將已經上傳到伺服器上的Excel文件讀出來,這里將Excel文件當做一個資料庫來讀。在聯系資料庫語句中,Data Source就是該文件在伺服器上得物理路徑

3,將第二步中讀出的數據以DataTable對象返回。

4,遍歷DataTable對象,然後到Sql Server資料庫中查詢,是否存在該條數據。如果存在,可以做更新,或者不做處理;如果不存在,則插入數據。

注意:在遍歷DataTable的時候,可是使用dt.Rows[i]["Name"].ToString();Name為Name列的表頭,所以Excel中列的順序就無關緊要了。當然,前提是你知道Excel里列中各表頭的名字。如果Excel中列的順序固定,即可按下面代碼中的方式進行。

添加的引用:

usingSystem;
usingSystem.Data;
usingSystem.Data.OleDb;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingSystem.Text;
usingSystem.Web;
usingSystem.Web.UI;
privateDataTablexsldata()
{
if(fuload.FileName=="")
{
lbmsg.Text="請選擇文件";
returnnull;
}
stringfileExtenSion;
fileExtenSion=Path.GetExtension(fuload.FileName);
if(fileExtenSion.ToLower()!=".xls"&&fileExtenSion.ToLower()!=".xlsx")
{
lbmsg.Text="上傳的文件格式不正確";
returnnull;
}
try
{
stringFileName="App_Data/"+Path.GetFileName(fuload.FileName);
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
fuload.SaveAs(Server.MapPath(FileName));
//HDR=Yes,這代表第一行是標題,不做為數據使用,如果用HDR=NO,則表示第一行不是標題,做為數據來使用。系統默認的是YES
stringconnstr2003="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="+Server.MapPath(FileName)+";ExtendedProperties='Excel8.0;HDR=Yes;IMEX=1;'";
stringconnstr2007="Provider=Microsoft.ACE.OLEDB.12.0;DataSource="+Server.MapPath(FileName)+";ExtendedProperties="Excel12.0;HDR=YES"";
OleDbConnectionconn;
if(fileExtenSion.ToLower()==".xls")
{
conn=newOleDbConnection(connstr2003);
}
else
{
conn=newOleDbConnection(connstr2007);
}
conn.Open();
stringsql="select*from[Sheet1$]";
OleDbCommandcmd=newOleDbCommand(sql,conn);
DataTabledt=newDataTable();
OleDbDataReadersdr=cmd.ExecuteReader();

dt.Load(sdr);
sdr.Close();
conn.Close();
//刪除伺服器里上傳的文件
if(File.Exists(Server.MapPath(FileName)))
{
File.Delete(Server.MapPath(FileName));
}
returndt;
}
catch(Exceptione)
{
returnnull;
}
}

protectedvoidBtn_Export_Excel_To_DB_Click(objectsender,EventArgse)
{
try{

DataTabledt=xsldata();

//dataGridView2.DataSource=ds.Tables[0];
interrorcount=0;//記錄錯誤信息條數
intinsertcount=0;//記錄插入成功條數

intupdatecount=0;//記錄更新信息條數

stringstrcon="server=localhost;database=database1;uid=sa;pwd=sa";
SqlConnectionconn=newSqlConnection(strcon);//鏈接資料庫
conn.Open();

for(inti=0;i<dt.Rows.Count;i++)
{
stringName=dt.Rows[i][0].ToString();//dt.Rows[i]["Name"].ToString();"Name"即為Excel中Name列的表頭
stringSex=dt.Rows[i][1].ToString();
intAge=Convert.ToInt32(dt.Rows[i][2].ToString());
stringAddress=dt.Rows[i][3].ToString();
if(Name!=""&&Sex!=""&&Age!=0&&Address!="")
{
SqlCommandselectcmd=newSqlCommand("selectcount(*)fromuserswhereName='"+Name+"'andSex='"+Sex+"'andAge='"+Age+"'andAddress="+Address,conn);
intcount=Convert.ToInt32(selectcmd.ExecuteScalar());
if(count>0)
{
updatecount++;
}
else
{
SqlCommandinsertcmd=newSqlCommand("insertintousers(Name,Sex,Age,Address)values('"+Name+"','"+Sex+"',"+Age+",'"+Address+"')",conn);
insertcmd.ExecuteNonQuery();
insertcount++;
}
}
else
{
errorcount++;
}
}
Response.Write((insertcount+"條數據導入成功!"+updatecount+"條數據重復!"+errorcount+"條數據部分信息為空沒有導入!"));
}
catch(Exceptionex)
{

}
}

B. C#.NETExcel文件數據導入SQLServer資料庫完整代碼

--如果導飢旅旅入數據並生成表

select*into表from

OPENROWSET('MICROSOFT.JET.OLEDB.4.0'

,'Excel5.0;HDR=YES;DATABASE=c: est.xls',sheet1$)

===

--將某個目錄上的Excel表,導入到數爛凳據庫中

--將所有的Excel文件放到一個目錄中,假設為c: est,然後用下面的方法來做

createtable#t(fnamevarchar(260),depthint,isfbit)

insertinto#texecmaster..xp_dirtree'c: est',1,1

declaretbcursorforselectfn='c: est'+fnamefrom#t

whereisf=1andfnamelike'%.xls'--取.xls文件(EXCEL)

declare@fnvarchar(8000)

opentb

fetchnextfromtbinto@fn

while@@fetch_status=0

begin

--下面是查詢語句,需要根據你的情況鎮芹改為插入語句

--插入已有的表用:insertinto表selct*from...

--創建表用:select*into表from...

set@fn='select*from

OPENROWSET(''MICROSOFT.JET.OLEDB.4.0'',''Excel5.0;HDR=YES;DATABASE='+@fn+''',全部客戶$)'

exec(@fn)

fetchnextfromtbinto@fn

end

closetb

deallocatetb

droptable#t

C. vb.net怎麼把excel 讀到DataSet中

可以參考Spire.XLS for .NET關於數據導入導出的方法。

excel數據導入dataset如下代碼:

'創建Workbook對象並載入Excel文檔

Dim workbook As New Workbook()

workbook.LoadFromFile("F:ExportData.xlsx", ExcelVersion.Version2013)

'獲取第一張sheet

Dim sheet As Worksheet = workbook.Worksheets(0)

'設置range范圍

Dim range As CellRange = sheet.Range(sheet.FirstRow, sheet.FirstColumn, sheet.LastRow, sheet.LastColumn)

'輸出數據, 同時輸出列名以及公式值

Dim dt As DataTable = sheet.ExportDataTable(range, True, True)

熱點內容
c語言的實驗報告 發布:2025-06-27 22:51:30 瀏覽:955
真我具體的配置是什麼 發布:2025-06-27 22:24:59 瀏覽:661
編譯github源代碼 發布:2025-06-27 22:21:46 瀏覽:110
公司伺服器與終端電腦 發布:2025-06-27 22:16:35 瀏覽:692
apex低配置怎麼流暢 發布:2025-06-27 22:16:28 瀏覽:849
興業銀行解壓慢 發布:2025-06-27 22:15:46 瀏覽:114
net兼容編譯器的功能是 發布:2025-06-27 21:51:36 瀏覽:571
試漏氣的肥皂水怎麼配置 發布:2025-06-27 21:42:17 瀏覽:637
已知伺服器如何找資料庫 發布:2025-06-27 21:39:44 瀏覽:113
sql滿連接 發布:2025-06-27 21:37:35 瀏覽:482