我并不是说导入的大略。
而是LinqToExcel让我们对Excel操作更加大略!

末了我们将利用ClosedXML输出Excel。
这个比现盛行NPOI与EPPlus更加精良的组件,以Open XML SDK为根本,以是只支持xlsx,不支持xls格式(现阶段谁没有个office2007以上版本)

他导出的Excel根据官方描述,兼容性远超同行对手

phpeasyuiexcel导入ASPNET MVC5EF6EasyUI 后台治理体系 NoSQL

如果你不是利用本架构只看2,3,4点,利用BLL层的代码,这同样适用你的MVC程序

知识点:

LinqToExcel组件读取Excel文件

ClosedXML组件输出Excel

准备:

一张演示的数据库表

安装LinqToExcel NuGet包

文件上传样例

CloseXML导出Excel

开始:

1.数据表

如何利用这个框架?

按照之前的做法,更新到EF。
并利用T4天生DAL,BLL,MODEL。
再用代码天生器天生界面复制进办理方案,一步到位

配置好访问地址和权限,直接运行

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

2.安装LinqToExcel包

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

3.文件上传

(这一点大略带过,可以到网高下载上传代码植入到自己系统中)

或者下载第32节的源码 或者下载本节的示例代码都可以

我这里利用普通的form上传功能

添加导入前端代码

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

担保上传是成功的。

直接查看源码的C#上传代码

-------------------------------------------------------------------------------------------------------上面只是前期的准备事情--------------------------------------------------------------

在业务层添加以下代码

代码包含两个方法

public bool CheckImportData( string fileName, List<Spl_PersonModel> personList,ValidationErrors errors )

fileName为我们上传的文件。

personList为承接数据List

ValidationErrors 缺点凑集

public void SaveImportData(IEnumerable<Spl_PersonModel> personList)

保存数据

别忘却添加接口

大略明白,直接看代码,不再解析。
OK这样掌握器就可以直接调用了

末了前端还须要把路径给回来。

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

一样平常情形下我们是供应模版给用户下载供用户输入数据,来确保格式的精确性

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

4.安装ClosedXML NuGet包

在掌握器添加以下代码:

把稳:ExportExcelResult

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

总结:

本节知识点,全部聚拢在CheckImportData方法上。

对应列头是模版xlsx的列头

1.如果模版须要是是中文的,如Name=名字,那么方法该当这么写

excelFile.AddMapping<Spl_PersonModel>(x => x.Name, \"大众名字\"大众);

2.导入第几个sheet事情薄可以这么写

我这里写0是指第一个sheet事情薄。
可以直接指定事情薄

var excelContent = excelFile.Worksheet<Spl_PersonModel>(\"大众Sheet1\公众);

3.检讨精确性可以确保数据的来源。
可以给出用户精确的修正提示。

4.借助ClosedXML,导呈现实只须要几行代码。
哈哈..这是如此的大略。

作者:YmNets

出处:http://ymnets.cnblogs.com/