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效果对比如下:
版权声明:本作品系原创,版权归码友网所有,如未经许可,禁止任何形式转载,违者必究。
发表评论
登录用户才能发表评论, 请 登 录 或者 注册