首页 / .NET 5 / 正文

.NET 5/.NET Core中使用EPPlus导出自定义列标题、忽略列、列排序的静态扩展方法

2969 发布于: 2020-12-28 读完约需3分钟

EPPlus是一个.NET/.NET Core中操作Excel表格数据的第三方组件。使用EPPlus你可以在不依赖其它第三方组件的情况下完成对Excel的导入、导出等操作,而且步骤非常简单。相信不少.NET玩家已经体验过EPPlus带来的便捷和高效,所以本文就不再为大家分享EPPlus的具体使用方法(如何使用EPPlus请参考《C#/.NET使用EPPlus组件导出数据到EXCEL表格并下载到本地的示例》),而是介绍一个为EPPlus定制自定义导出列标题、忽略列以及列排序的静态扩展方法。

创建解决方案

首先,创建一个示例解决方案[EpplusDemo],再分别创建一个共享的.NET 5的类库[EpplusDemo.Shared]和一个测试用的基于.NET 5的Web Api项目[EpplusDemo.WebApi]。

EPPlus的常规导出泛型集合到Excel的方法如下:

但这个导出Excel的泛型方法功能相对简单,无法自定义一些配置,比如:

  • 不能自定义泛型对象的列名,对象的属性名称是什么,导出的列名就是什么;
  • 不能忽略不想导出的列,比如不想导出一个泛型对象的某些属性,那我们还得创建一个只包含需要导出列的属性的实体;
  • 无法对导出Excel表格的列顺序进行排序

创建公共扩展类和方法

下面,我们在项目[EpplusDemo.Shared]中创建一些共享的帮助类,如下:

CdExcelHeader.cs

CdExcelMemberInfo.cs

CdExportAttribute.cs

CdExcelInfo.cs

最后,创建一个EPPlus的静态扩展类:EPPlusExportHelper.cs

在WebApi中测试EPPlus的导出功能

在项目[EpplusDemo.WebApi]中创建一个DownloadController.cs控制器,并分别创建两个导出测试,如下:

测试用的Person.cs模型

测试用的自定义导出模型PersonExportModel.cs

如你所见,我们只需要在导出模型中配置CdExportAttribute特性的参数即可,导出的Excel效果对比如下:

版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。

上一篇: Log4net 的 ASP.NET Core 扩展库

下一篇: Elasticsearch笔记整理

本文永久链接码友网 » .NET 5/.NET Core中使用EPPlus导出自定义列标题、忽略列、列排序的静态扩展方法

分享扩散:

发表评论

登录用户才能发表评论, 请 登 录 或者 注册