当前位置:首页 » 操作系统 » 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)

热点内容
为什么刷机还要弄以前的解锁密码 发布:2025-08-13 07:47:14 浏览:273
acfun如何上传 发布:2025-08-13 07:35:10 浏览:270
ftp共享服务器需要什么配置 发布:2025-08-13 07:33:00 浏览:543
主要数据库 发布:2025-08-13 07:15:27 浏览:178
压缩包漫画 发布:2025-08-13 07:15:25 浏览:131
服务器空岛原版如何获得矿物 发布:2025-08-13 07:08:22 浏览:437
购车时哪些是必备的配置 发布:2025-08-13 06:42:33 浏览:693
宝塔添加脚本 发布:2025-08-13 06:41:56 浏览:502
ios数据库存储 发布:2025-08-13 06:28:10 浏览:975
java学习资源 发布:2025-08-13 06:07:56 浏览:395