在Control 中:

   public ActionResult ImportExcel()
{
return View();
}
//客户导入
[HttpPost]
public ActionResult ImportExcel(HttpPostedFileBase importxls)
{
//获取文件和扩展名
var fileName = Path.GetFileName(importxls.FileName);
//获取文件路径地址
var path = Path.Combine(Server.MapPath("~/App_Data/"), fileName);
//获取文件的扩展名
var exname = Path.GetExtension(importxls.FileName).ToLower();
try
{
if (exname == ".xls" || exname == ".xlsx")
{
importxls.SaveAs(path);
var connectionString = string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + Path.Combine(Server.MapPath("~/App_Data/"), fileName) + ";Extended Properties=Excel 12.0;");
var adapterbvandrev = new OleDbDataAdapter("select*from[Sheet1$]", connectionString);
var dsimport = new DataSet();
adapterbvandrev.Fill(dsimport);
DataTable dataimport = dsimport.Tables[0];
List<Customer> objectCustomerEntity = new List<Customer>();
for (int i = 0; i < dataimport.Rows.Count; i++)
{
objectCustomerEntity.Add(
new Customer
{
CustomerCode = dataimport.Rows[i]["用户编号"].ToString(),
Company = dataimport.Rows[i]["公司名称"].ToString(),
Contact = dataimport.Rows[i]["联系人"].ToString(),
Tel = dataimport.Rows[i]["联系电话"].ToString(),
Mobile = dataimport.Rows[i]["手机号码"].ToString(),
Address = dataimport.Rows[i]["客户地址"].ToString(), });
}
SaveData(objectCustomerEntity);
return View();
}
else
{
return Content("<script>alert('请选择Excel文件!');history.go(-1);</script>");
}
}
catch(Exception ex)
{
this.TempData["Message"] = "错误:请检查所导入的Excel格式是否符合要求?" + ex.Message; ;
return View();
}
} //public bool SaveData(List<Customer> objCustomer)
//{
// try
// {
// CMSContext _db = new CMSContext();
// foreach (var item in objCustomer)
// {
// Customer Customer = new Customer();
// Customer.CustomerCode = item.CustomerCode;
// Customer.Company = item.Company;
// Customer.Contact = item.Contact;
// Customer.Tel = item.Tel;
// Customer.Mobile = item.Mobile;
// Customer.Address = item.Address;
// _db.Customers.Add(Customer);
// _db.SaveChanges();
// }
// this.TempData["Message"] = "恭喜," + objCustomer.Count().ToString() + "条数据导入成功!";
// return true;
// }
// catch (Exception ex)
// {
// this.TempData["Message"] = "错误:请检查客户编号是否有重复?" + ex.Message;
// return false;
// }
//} public bool SaveData(List<Customer> customer)
{
try
{
string fmessage = "";
int i = 0;
foreach (var item in customer)
{ var sitem = _db.Customers.SingleOrDefault(s => s.CustomerCode == item.CustomerCode);
if (sitem != null)
{
fmessage += sitem.CustomerCode + " /";
i++;
}
else
{
Customer Customer= new Customer()
{
CustomerCode = item.CustomerCode,
Company = item.Company,
Contact = item.Contact,
Tel = item.Tel,
Mobile = item.Mobile,
Address = item.Address,
};
_db.Customers.Add(Customer);
_db.SaveChanges();
}
}
if (fmessage != "")
this.TempData["Message"] = (customer.Count() - i).ToString() + "条数据导入成功!" + fmessage + "因为编码重复而导入失败!如果不再导入请关闭窗口。";
else
this.TempData["Message"] = customer.Count().ToString() + "条数据导入成功!如果不再导入请关闭窗口。";
return true;
}
catch (Exception ex)
{
this.TempData["Message"] = "导入失败:请检查编码是否符合规范?" + ex.Message;
return false;
}
}

在View视图中:

@model CMS.Models.Customer

@{
ViewBag.Title = "ImportExcel";
Layout = "~/Areas/Mana/Views/Shared/_Layout.cshtml";
} <script type="text/javascript">
function validate() {
var gimport = $("#import").val();
if (gimport == "") {
alert("请先选择文件!");
return false;
}
}
</script>
<div class="navigation"><a href="javascript:history.go(-1);" class="back">后退 </a>首页 > 客户管理 > 导入用户</div>
<div class="easyui-tabs" id="innertab" style="width:auto;height:auto;">
<div title="基本信息" style="padding:10px">
<div id="contentTab">
<div class="tab_con" style="display:block;">
@using (Html.BeginForm("ImportExcel", "Customer", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
@Html.ValidationSummary(true)
<table class="form_table">
<tr><td><input type="file" name="importxls" id="import" /></td></tr>
<tr><td><input type="submit" value="开始导入!" name="save" onclick="javascript:return validate();"/> </td></tr>
<tr><td><span style="color:Red">@TempData["Message"] </span></td></tr>
<tr>
<td>
<b>导入Excel表格式说明<font color="green">(特别注意红框处标题头部文字和工作表名称是否与图例相同!)</font></b><br />
<img src="/Content/images/importnote.jpg" />
<br />如果本机没有安装Excel提供程序,请微软官方下载:
<a href="http://download.microsoft.com/download/7/0/3/703ffbcb-dc0c-4e19-b0da-1463960fdcdb/AccessDatabaseEngine.exe " target="_blank">下载地址</a>
</td>
</tr>
</table>
}
</div>
</div>
</div>
</div>

将Excel导入数据库的更多相关文章

  1. excel 导入数据库 / SSIS 中 excel data source --64位excel 版本不支持-- solution

    当本地安装的excel(2013版) 是64-bit时:出现的以下两种错误 解决: 1. excel 导入数据库 , 如果文件是2007则会出现:“The 'Microsoft.ACE.OLEDB.1 ...

  2. ASP.NET 将Excel导入数据库

    将Excel导入数据库大致流程:  Excel数据->DataSet->数据库 需要做的准备:1.FileUpload控件一个,按钮一个,如果需要即时显示那么GridView或DataGr ...

  3. Java实现将Excel导入数据库和从数据库中导出为Excel

    实现的功能: 用Java实现从Excel导入数据库,如果存在就更新 将数据库中的数据导出为Excel 1.添加jxl.jar mysql-connector-java.1.7-bin.jar包到项目的 ...

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

    本内容主要包括(文件上传.excel2003数据导入数据库)excel导入数据库功能需要jxl  jar包支持 下面是文件上传的前端测试代码 <%@ page language="ja ...

  5. Excel导入数据库百万级数据瞬间插入

    Excel导入数据库百万级数据瞬间插入 百万级别,瞬间,有点吊哇

  6. Hibernate+jxl+excel导入数据库

    在将excel中的10w行数据导入数据库中时,总发生内存溢出,一开始使用的Spring+Hibernate;不知如何使用批处理,后来只是用Hibernate,10W行数据几分钟完成, 代码如下: pu ...

  7. 使用thinkphp框架实现Excel导入数据库

    之前讲过php实现Excel导出数据库的随笔,链接:https://www.cnblogs.com/nuanai/p/6727711.html 之前的项目用到较多的就是Excel导出,现在用到了Exc ...

  8. Excel导入数据库(三)——SqlBulkCopy

    上篇博客中介绍了批量导入数据库的方法:下面介绍一下批量导入过程的核心——SqlBulkCopy类. 下面先介绍一些原理性的东西:SQLBulkCopy类,通常用于数据库之间大批量的数据传递.即使表结构 ...

  9. 第三次作业---excel导入数据库及显示(2)

    发现第一次做的功能有点复杂,不能理解.而且第一次的想法是在页面上上传文件,连接并导入到数据库,并在页面上显示.后来才看到要求是直接在本地将数据导入数据库就行了,然后显示.所以才出现了一堆看不懂也解决不 ...

  10. Excel导入数据库脚本

    --数据库中不存在需要导入的表 SELECT * INTO tab_PurchasePriceTemp FROM OPENROWSET( 'Microsoft.Jet.OLEDB.4.0', 'EXC ...

随机推荐

  1. Let's Encrypt这个免费的证书签发服务

    使用的是Let's Encrypt这个免费的证书签发服务,按照这里的教程一步步照着来,很快就完成了. 迁移过程总体来说比较顺利,只是遇到了两个不大不小的坑.一个是域名的跳转问题,迁移完成以后对于所有h ...

  2. 7Z命令行

    7-Zip (A) 4.57 Copyright (c) 1999-2007 Igor Pavlov 2007-12-06 Usage: 7za <command> [<switch ...

  3. Dynamics AX Read OLEDB

    static System.Data.DataTable getOLEDB_Record(str _dbPath,str _query) { System.Data.OleDb.OleDbConnec ...

  4. Oracle中的数据类型和数据类型之间的转换

    Oracle中的数据类型 /* ORACLE 中的数据类型: char 长度固定 范围:1-2000 VARCHAR2 长度可变 范围:1-4000 LONG 长度可变 最大的范围2gb 长字符类型 ...

  5. ionic安装时遇到的minimatch错误

    安装提示 npm WARN deprecated minimatch@2.0.10: Please update to minimatch 3.0.2 or higher to avoid a Reg ...

  6. SQLAlchemy 对象缓存和刷新

    SQLAlchemy 对象缓存和刷新 SQLAlchemy 带有对象缓存机制,在重复查询相同的对象时,直接先查询本地的缓存,而不需要从数据库加载数据. 在每个 model 对象的内部,SQLAlche ...

  7. ucenter 整合同步登录的内部实现原理及thinkphp整合ucenter

    1.用户登录discuz,通过logging.php文件中的函数uc_user_login对post过来的数据进行验证,也就是对username和password进行验证.2.如果验证成功,将调用位于 ...

  8. EF Code First教程-03 数据库迁移Migrator

    要在nuget 程序包管理控制台中输入命令 基本命令 Enable-Migrations   //打开数据库迁移 Add-Migration AddBlogUrl    //新增一个数据库迁移版本   ...

  9. VI设置及用法

    VI设置通过/etc/vim/vimrc设置vi的基本操作格式. 全局属性通过末行模式输入可临时设置. syntax on ;高亮显示 set tabstop=4 setsofttabstop=4 ; ...

  10. 第十篇 Integration Services:高级事件行为

    本篇文章是Integration Services系列的第十篇,详细内容请参考原文. 简介在前一篇, we introduced fault tolerance by examining method ...