问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

asp.net怎样把Excel数据上传到数据库中

发布网友 发布时间:2022-04-27 11:19

我来回答

3个回答

懂视网 时间:2022-05-03 10:48

ASP.NET实现excel导入数据库
原创Mr_周先生 最后发布于2018-03-27 18:56:02 
展开
1:说明:此方法建立在已经实现数据库的插入功能上

2:注解:2.1:新建一个文件夹存放excel文件(见example.aspx.cs的GetExcel()方法)

               2.2:控件

                技术图片

               2.3:excel表格式(excel表头与数据库表字段对应)

               技术图片

                2.4:修改数据库插入方法(见example.aspx.cs的InsetData()方法)

3:步骤:1:前台控件:

                  1.1:FileUpload;

                  1.2:Button;

              2:后台响应程序

                  2.1:将excel上传到服务器;

                  2.2:Excel数据导入System.Data.DataTable;

                  2.3:从System.Data.DataTable导入数据到数据库

4:代码:

4.1:example.aspx
<div style="margin-top: 0px; margin-left: 0px;">
<div style="height: 38px">
<asp:Label ID="Label1" runat="server" Text="文件*:" Width="60px"></asp:Label>
<asp:FileUpload ID="fulImport" runat="server" Height="20px" Width="450px" />
<asp:Button ID="btnImport" runat="server" Text="一键上传" Width="80px" Height="20px" OnClick="btnImport_Click" />
</div>
4.2:example.aspx.cs
//上传excel数据到数据库------------------------------------------>
protected void btnImport_Click(object sender, EventArgs e) {
//1:将excel上传到服务器;
string fileUrl = this.GetExcel();
//2:将excel数据导入数据库
this.InsetData(this.GetExcelDatatable(fileUrl));
}
//1:客户端上传excel到服务器
//@return:fileUrl 服务器文件路径
protected string GetExcel(){
string fileUrl = "";
#region 文件上传
try
{
//全名
string excelFile = this.fulImport.PostedFile.FileName;
//获取文件名(不包括扩展名)
string fileName = Path.GetFileNameWithoutExtension(fulImport.PostedFile.FileName);
//扩展名
string extentionName = excelFile.Substring(excelFile.LastIndexOf(".") + 1);
if (fileName == "" || fileName == null)
{
Response.Write("<script>alert(‘请先选择Excel文件!‘)</script>");
return null;
}
if (extentionName != "xls" && extentionName != "xlsx")
{
Response.Write("<script>alert(‘您上传的不是Excel文件!‘)</script>");
return null;
}
//浏览器安全性限制 无法直接获取客户端文件的真实路径,将文件上传到服务器端 然后获取文件源路径
#region 设置上传路径将文件保存到服务器
string dateTime = DateTime.Now.Date.ToString("yyyyMMdd");
string time = DateTime.Now.ToShortTimeString().Replace(":", "");
string newFileName = dateTime + time + DateTime.Now.Millisecond.ToString() + ".xls"; ;
//自己创建的文件夹 位置随意 合理即可
fileUrl = Server.MapPath("..\excel") + "\" + newFileName;
this.fulImport.PostedFile.SaveAs(fileUrl);
//Response.Write("<script>alert(‘已经上传到服务器文件夹‘)</script>");
return fileUrl;
#endregion

}
catch
{
Response.Write("<script>alert(‘数据上传失败,请重新导入‘)</script>");
return null;
}
#endregion

}
//2:Excel数据导入Datable
//@param fileUrl 服务器文件路径
//@return System.Data.DataTable dt
protected System.Data.DataTable GetExcelDatatable(string fileUrl)
{
//office2007之前 仅支持.xls
//const string cmdText = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=‘Excel 8.0;IMEX=1‘;";
//支持.xls和.xlsx,即包括office2010等版本的 HDR=Yes代表第一行是标题,不是数据;
const string cmdText = "Provider=Microsoft.Ace.OleDb.12.0;Data Source={0};Extended Properties=‘Excel 12.0; HDR=Yes; IMEX=1‘";

System.Data.DataTable dt = null;
//建立连接
OleDbConnection conn = new OleDbConnection(string.Format(cmdText, fileUrl));

//打开连接
if (conn.State == ConnectionState.Broken || conn.State == ConnectionState.Closed)
{
conn.Open();
}


System.Data.DataTable schemaTable = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);

//获取Excel的第一个Sheet名称
string sheetName = schemaTable.Rows[0]["TABLE_NAME"].ToString().Trim();

//查询sheet中的数据
string strSql = "select * from [" + sheetName + "]";
OleDbDataAdapter da = new OleDbDataAdapter(strSql, conn);
DataSet ds = new DataSet();
da.Fill(ds);
dt = ds.Tables[0];

return dt;


}
//3:从System.Data.DataTable导入数据到数据库
//@param System.Data.DataTable dt
protected void InsetData(System.Data.DataTable dt)
{
int i = 0;
string MATER_ID = "";
string MATER_NAME = "";
string MATER_COUNT = "";
string MATER_SPEC = "";
string MATER_COMPANY = "";
string MATER_TIME = "";
foreach (DataRow dr in dt.Rows)
{
                //此处遍历获取excel的数据
                MATER_ID = dr[0].ToString().Trim();
MATER_NAME = dr[1].ToString().Trim();
MATER_COUNT = dr[2].ToString().Trim();
MATER_SPEC = dr[3].ToString().Trim();
MATER_COMPANY = dr[4].ToString().Trim();
MATER_TIME = dr[5].ToString().Trim();
                //此处执行你的数据库插入语句即可
string strInsert = "insert into ‘你的数据库名‘.‘你的表名‘ (MATER_ID,MATER_NAME,MATER_COUNT,MATER_SPEC,MATER_COMPANY,MATER_TIME) values(" + MATER_ID + ",‘" + MATER_NAME + "‘," + MATER_COUNT + ",‘" + MATER_SPEC + "‘,‘" + MATER_COMPANY + "‘,to_date(‘" + MATER_TIME + "‘,‘yyyy-mm-dd hh24:mi:ss‘))";
int count = new BLL.Common.ComData().ExecuteNonQuery(strInsert);
if (count != 0)
{
i++;
}
else
{
Alert("导入失败,数据格式出错!!");
}
}
if (i == dt.Rows.Count)
{
Alert("导入成功:共导入" + i + "组数据!!");
}
else {
Alert("未完全导入:共导入" + i + "组数据!!");
}
Search();
}
//--------------------------------------------------------------->
————————————————
版权声明:本文为CSDN博主「Mr_周先生」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/hangxing_tianxia/article/details/79716766

ASP.NET实现excel导入数据库

标签:直接   company   20px   dataset   substring   sele   图片   ons   ash   

热心网友 时间:2022-05-03 07:56

/*时间: 2009-6-26 13:30
*获得Excel中的所有sheetname。
*/
public ArrayList ExcelSheetName ( string filepath )
{
ArrayList al = new ArrayList ();
OleDbConnection conn = new OleDbConnection(filepath);
conn.Open ();
DataTable sheetNames = conn.GetOleDbSchemaTable
(System.Data.OleDb.OleDbSchemaGuid.Tables,new object[]{null,null,null,"TABLE"});
conn.Close ();
foreach ( DataRow dr in sheetNames.Rows )
{
al.Add ( dr[2] );
}
return al;
}
/*时间: 2009-6-26 14:10
*将Excel导入到DataSet
*/
public DataSet ExcelDataSource(string filepath, string sheetname)
{
OleDbConnection conn = null;
try
{ conn = new OleDbConnection(filepath);
conn.Open();
OleDbCommand cmd = new OleDbCommand();
cmd.Connection = conn;
cmd.CommandText = "select count(模块名称) from [" + sheetname + "]";
int i = int.Parse(cmd.ExecuteScalar().ToString());
cmd.CommandText = "select count(*) from (select distinct 模块名称 from [" + sheetname + "])";
int n = int.Parse(cmd.ExecuteScalar().ToString());
if (i != n)
{
return null;
}
OleDbDataAdapter oada = new OleDbDataAdapter("select * from [" + sheetname + "]", conn);
DataSet ds = new DataSet();
oada.Fill(ds);
return ds;
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);

return new DataSet();
}
finally
{
conn.Close();
} }

热心网友 时间:2022-05-03 09:14

ASP.NET其实可以直接把EXCEL表中的数据导入到SQL SERVER 数据库中。这个涉及到的是分布式查询运算,你可以参考MSDN里面的例子,opendatasource函数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
人类如何才能悬浮在空中? - 知乎 人体悬浮术是真的存在吗 人体怎样才能真正的在空中悬浮 小孩c蛋白反应高是什么原因 (2014?南海区二模)如图所示,物重G为2000N,小红用800N的拉力花2s的时间... 苹果13系列升级iOS15.5好吗? 出生2o12年11月20日2点姓石光字辈取名 求龙凤胎名字:2012年6月21日(农历5月初3)凌晨0点40分出生,大的为龙,小... by和take有什么区别 takeby后面跟交通工具的区别 asp中怎么导入excel到SQL中? 求助:用ASP将excel导入到数据库中 怎样使用asp将excel中数据导入到sql server数据库中 ASP代码中如何把EXCEL数据导入到SQL SERVER数据库中? 苹果手机掉水里面了他两天了现在打不开开不开机怎么办呀 苹果5s掉水里面&#39;开不了机怎么办 苹果手机进水后无法开机,怎么修? 苹果5s进水了开不开机怎么办 苹果5s进水后开不了机,充电也没反应怎么回事? 沁园春长沙和沁园春雪在意境上有何不同 沁园春雪和沁园春长沙试比较两首词在在写作手法上的共同点是什么 沁园春长沙和沁园春雪表达的思想感情上的不同 急求 沁园春 长沙和沁园春·雪 沁园春长沙和沁园春雪写作上的相同点 《沁园春·长沙》与《沁园春·雪》在内容上和形式上有什么不同点和相同点? 沁园春长沙与沁园春雪的相同点和不同点 沁园春 长沙中与沁园春 雪有异曲同工之妙的句子 比较沁园春雪和长沙的异同 《沁园春·雪》和《沁园春·长沙》的异同点是什么 ? 沁园春雪与沁园春长沙的异同 怎么在ASP页面上传EXCEL数据到ACCESS数据库中 元谋人、 蓝田人、 北京人、山顶洞人区别是什么? 如何通过asp将excel表导入access数据库中 ASP导入EXCEL到access数据库 用.asp Excel、word内容导入数据库 元谋人、北京人、山顶洞人的习性? ASP里,将Excel导入到Access数据库 将下列原始人类按时间先后排序 元谋人、山顶洞人、北京人、半坡人、河姆渡人 我做了一个ASP动态网站,我想通过后台操作,将EXCEL文件导入到数据库中对应的表中,而且字段也要对应 元谋人,北京人,山顶洞人,河姆渡氏族,半坡氏族,大汶口居民的考古分期 ASP.NET中如何把Excel的数据导入到数据库中,最好给详细的代码和注释... 比较元谋人,北京人,山顶洞人的异同点? 求ASP.NET将Excel导入到数据库的完整例子?急!!!(一个sheet中的数据导入... 北京人、山顶洞人、元谋人谁最早 因需要,用ASP编写了一个EXCEL上传程序,并且把上传的EXCEL数据导入到已经... 元谋人,北京人,山顶洞人都生活在什么时代?为什么? 元谋人北京人山顶洞人生活的时间地点是什么 asp中把excel中数据导入SQL数据库 (元谋人,山顶洞人,北京人)生活在什么时代 类人猿 古猿 北京人 元谋人 现代人 山顶洞人 按时间先后排序