ASP.NET实现excel导入数据库

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

原文地址:https://www.cnblogs.com/ljs-13/p/12424956.html

时间: 2024-11-02 00:11:49

ASP.NET实现excel导入数据库的相关文章

asp.net 中excel 导入数据库

protected void Button1_Click(object sender, EventArgs e) { SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["LYConnectionString"].ConnectionString); ;//链接数据库 conn.Open(); try { string fileurl = t

.NET网站本机调试通过、发布后EXCEL导入数据库报错问题的解决

近期做了一个EXCEL导入数据库的页面,在VS2012本机调试中导入XLS\XLSX均顺利通过,但在WEB环境下导入时均出错! 在网上查了相关资料,最有可能的原因是 DCOM 中EXCEL应用程序权限配置的问题. (DCOM基于组件对象模型(COM),COM提供了一套允许同一台计算机上的客户端和服务器之间进行通信的接口) 配置步骤(本机win8.1 64Bit Office2010 64Bit): 1. 运行-dcomcnfg-组件服务-计算机-我的电脑-DCOM配置-找到 Micosoft E

Java实现Excel导入数据库,数据库中的数据导入到Excel

实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java.sql.Co

Java实现Excel导入数据库,数据库中的数据导入到Excel。。转载

自学资料总结 实现的功能: Java实现Excel导入数据库,如果存在就更新 数据库中的数据导入到Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的lib目录下­ 2.Excel文件目录:D://book.xls 3.数据库名:javenforexcel 4.表名:stu 5.编写类:连接mysql的字符串方法.插入的方法.实体类­­ 表结构如下 : 连接数据库的工具类 package com.javen.db; import java

记录-java(jxl) Excel导入数据库

本内容主要包括(文件上传.excel2003数据导入数据库)excel导入数据库功能需要jxl  jar包支持 下面是文件上传的前端测试代码 <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.

C# ASP.NET CSV文件导入数据库

原文:C# ASP.NET CSV文件导入数据库 using System; using System.Collections.Generic; using System.Text; using System.Data; using System.Data.OleDb; using System.Data.Sql; using System.Data.SqlClient; using System.IO; namespace HPRSP.CommonDataObject { public cla

POI实现Excel导入数据库数据

POI实现Excel导入数据库数据 首先看一下我们导入的数据Excel中的数据格式是什么 ?上面是我们的一个数据导入时的模板信息,我们需要按照这样过的格式导入数据库数据. 针对这样的数据格式可以通过ReadExcelUtils的工具类去读取到 ReadExcelUtils readExcelUtils = new ReadExcelUtils(file.getInputStream(),fileName); 通过上述代码我们可以获取到ReadExcelUtils对象,再调用其readExcelL

Excel导入数据库脚本

--数据库中不存在需要导入的表 SELECT * INTO tab_PurchasePriceTemp FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0', 'EXCEL 5.0;HDR=YES;IMEX=1; DATABASE=D:\A.xls',Sheet2$) --出现  SQL Server 阻止了对组件 'Ad Hoc Distributed Queries' 的 STATEMENT'OpenRowset错误   解决方案 --启用Ad Hoc Dis

PHP将Excel导入数据库以及数据库数据导出至Excel

一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reader(); //创建读取Excel的对象 $data->setOutputEncoding('utf-8'); //设置