ASP.NET MVC5+EF6+EasyUI 后台管理系统
author:一佰互联 2019-04-04   click:153

简介:ASP.NET MVC5+EF6+EasyUI 后台管理系统前言:导入导出实在多例子,很多成熟的组建都分装了导入和导出,这一节演示利用LinqToExcel组件对Excel的导入,这个是一个极其简单的例子。我并不是说导入的简单。而是LinqToEx ...

ASP.NET MVC5+EF6+EasyUI 后台管理系统

前言:

导入导出实在多例子,很多成熟的组建都分装了导入和导出,这一节演示利用LinqToExcel组件对Excel的导入,这个是一个极其简单的例子。我并不是说导入的简单。而是LinqToExcel让我们对Excel操作更加简单!最后我们将利用ClosedXML输出Excel。这个比现流行NPOI与EPPlus更加优秀的组件,以Open XML SDK为基础,所以只支持xlsx,不支持xls格式(现阶段谁没有个office2007以上版本)他导出的Excel根据官方描述,兼容性远超同行对手如果你不是使用本架构只看2,3,4点,使用BLL层的代码,这同样适用你的MVC程序

知识点:

  • LinqToExcel组件读取Excel文件
  • ClosedXML组件输出Excel

准备:

  1. 一张演示的数据库表
  2. 安装LinqToExcel NuGet包
  3. 文件上传样例
  4. CloseXML导出Excel

开始:

1.数据表

ASP.NET MVC5+EF6+EasyUI 后台管理系统

如何使用这个框架?按照之前的做法,更新到EF。并利用T4生成DAL,BLL,MODEL。再用代码生成器生成界面复制进解决方案,一步到位配置好访问地址和权限,直接运行

ASP.NET MVC5+EF6+EasyUI 后台管理系统

再手动在工具栏添加导入和导出的按钮(别忘记添加权限)

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统


2.安装LinqToExcel包

因为我们读取Excel放在BLL层,所有在BLL层安装LinqToExcel包

ASP.NET MVC5+EF6+EasyUI 后台管理系统


3.文件上传

(这一点简单带过,可以到网上下载上传代码植入到自己系统中)或者下载第32节的源码 或者下载本节的示例代码都可以我这里使用普通的form上传功能添加导入前端代码

ASP.NET MVC5+EF6+EasyUI 后台管理系统

导入按钮事件只要弹出上传框就好

ASP.NET MVC5+EF6+EasyUI 后台管理系统

保证上传是成功的。

ASP.NET MVC5+EF6+EasyUI 后台管理系统

直接查看源码的C#上传代码-------------------------------------------------------------------------------------------------------上面只是前期的准备工作--------------------------------------------------------------在业务层添加以下代码

ASP.NET MVC5+EF6+EasyUI 后台管理系统

代码包含两个方法public bool CheckImportData( string fileName, List<Spl_PersonModel> personList,ValidationErrors errors )fileName为我们上传的文件。personList为承接数据ListValidationErrors 错误集合 public void SaveImportData(IEnumerable<Spl_PersonModel> personList)保存数据别忘记添加接口

ASP.NET MVC5+EF6+EasyUI 后台管理系统

简单明白,直接看代码,不再解析。OK这样控制器就可以直接调用了

ASP.NET MVC5+EF6+EasyUI 后台管理系统

最后前端还需要把路径给回来。

ASP.NET MVC5+EF6+EasyUI 后台管理系统

OK测试一下!建立一个新的excel格式

ASP.NET MVC5+EF6+EasyUI 后台管理系统

一般情况下我们是提供模版给用户下载供用户输入数据,来确保格式的正确性

ASP.NET MVC5+EF6+EasyUI 后台管理系统

--------------------------------------------------------------------------------------导出功能------------------------------------------------------------------------------

4.安装ClosedXML NuGet包

ASP.NET MVC5+EF6+EasyUI 后台管理系统

在控制器添加以下代码:

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统

注意:ExportExcelResult此类是使用ClosedXML.Excel,已经封装好了。大家直接拿来用就可以。把关注点都放在业务中

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统


总结:

本节知识点,全部聚集在CheckImportData方法上。对应列头是模版xlsx的列头

ASP.NET MVC5+EF6+EasyUI 后台管理系统

1.如果模版需要是是中文的,如Name=名字,那么方法应该这么写 excelFile.AddMapping<Spl_PersonModel>(x => x.Name, "名字");2.导入第几个sheet工作薄可以这么写我这里写0是指第一个sheet工作薄。可以直接指定工作薄var excelContent = excelFile.Worksheet<Spl_PersonModel>("Sheet1");3.检查正确性可以确保数据的来源。可以给出用户正确的修改提示。4.借助ClosedXML,导出实际只需要几行代码。哈哈..这是如此的简单。

ASP.NET MVC5+EF6+EasyUI 后台管理系统

ASP.NET MVC5+EF6+EasyUI 后台管理系统

作者:YmNets出处:http://ymnets.cnblogs.com/本文仅代表作者个人观点,不代表巅云官方发声,对观点有疑义请先联系作者本人进行修改,若内容非法请联系平台管理员,邮箱2522407257@qq.com。更多相关资讯,请到巅云www.yinxi.net学习互联网营销技术请到巅云建站www.yx10011.com。