CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛
CXYVIP官网源码交易平台_网站源码_商城源码_小程序源码平台-丞旭猿论坛

「每天一个没用的干货」C#用EPPlus导出Excel-源码交易平台丞旭猿

前言

导出成为很多系统的必备功能,之前分享过导出PDF的功能,这里来分享一下Excel的导出;

提到Excel导出,NPOI肯定是很多小伙伴的首选,在以往的项目中也用其完成了很多导出需求;对于NPOI,个人感觉使用还是相对比较复杂,填充数据,单元格格式或样式,公式计算等,所以就想着换个库试试;和同事简单的沟通,EPPlus 和 Magicodes.IE 感觉都不错,但从Nuget包的下载量来看,EPPlus明显更胜一筹,而且在当时的业务需求中EPPlus更加合适,所以接下来的分享主要针对EPPlus。

注:EPPlus从版本5开始,如果使用就要求需要商业许可啦,但从业务功能来看,5之前的版本对于绝大多数业务场景够用啦,别排斥,看看之前的版本下载量:

不扯那么多啦,如果小伙伴了解更多关于EPPlus信息,github地址为:https://github.com/JanKallman/EPPlus/wiki。

接下来以平时常用功能为主,和小伙伴分享一下使用。

正文

这里新建一个API项目,针对每个功能单独一个接口进行演示,引入的EPPlus版本为4.5.3.3。

1. 数据填充;

EPPlus数据填充很简单,不需要创建行、列,直接定位到单元格赋值即可。两种定位单元格方式,如下:

  • 通过具体行和列的来定位这种方式定位比较灵活,也是用的比较多的。代码实现如下:运行效果:
  • 通过单元格标识来定位通过单元格标识进行定位,如上图,图中Excel的列标识为字母,行标识为数字,所以第一个单元格的定位可以对应为A1,第二个单元格为B1,以此类推。代码实现:运行效果,同样在浏览器中输入对应的接口地址,导出Excel:

2. 公式自动计算;

在以往导出的操作中,关于计算和汇总的数据很多都是在程序中先算好,然后再填充到单元格中,其实使用Excel公式超级方便;

代码实现:

运行效果:

3. 样式设置;

  • 单个单元格指定样式代码实现:效果如下:虽然效果也能实现,但每一个单元格都指定一遍,太麻烦了;下面的范围设置就比较给力;
  • 范围指定样式代码实现:运行效果:
  • 设置公共样式,如果所有数据都需要统一的对齐样式,所有单元格都需要边框,可以统一设置;公共样式直接针对worksheet中的所有单元格设置即可;代码实现:运行效果:

4. 合并单元格;

导出数据时,合并单元格是常有的事,我平常用将其分为列合并和行合并两种:

  • 列合并在我日常开发中,列合并通常在表头用的比较多,所以算是比较固定的格式,直接指定合并的范围即可;代码实现:调用:运行效果:当然也可以根据需求,动态设置行进行合并;
  • 行合并行合并主要是针对数据,当连续单元格值相等的情况,通常会要求进行行合并;如上图中前两行的第一个单元格数据都为111,需将其合并。代码实现:调用:运行效果:

5. 自适应列宽和自适应内容

当单元格内容比较多时,通常会用到以下两种方式,如图:

  • 自适应列宽:将字体缩小填充到单元格,单元格列宽不变;
  • 自适应内容:单元格根据内容填充,内容多宽就显示多宽;

代码实现如下:

运行效果如下:

6. 大数据导出

有些导出需求,需要导出大量的数据,如果通过上述内存的方式导出,可能会因为数据量大导致数据处理超时或内存泄露导致导出异常,通常这种需求,会采用异步的方式导出数据;大概步骤如下:

  • 用户点击导出操作,后台生成一条导出记录,即导出任务,包括导出时选择的条件、导出状态等信息;
  • 通过消息队列或者是后台任务的形式,获取到导出任务,得到导出条件,通过后台任务进行导出操作;
  • 保存对应文件,将导出后台任务状态改为已完成;
  • 用户就可以下载生成的文件;

保存文件的代码实现:

将生成的文件和任务、站点关联起来就可以根据任务下载啦;这里就不演示了,和上传图片一样道理。

演示的代码地址:https://github.com/zyq025/DotNetCoreStudyDemo/tree/main/ExportExcelDemo

总结

关于使用EPPlus导出Excel的常用功能演示就分享到这了;当然也可以进行导入的操作,只是读取数据而已,这个就留给小伙伴自己实操练习啦。

声明:本文部分素材转载自互联网,如有侵权立即删除 。

© 版权声明
THE END
喜欢就支持一下吧
点赞0赞赏 分享
相关推荐
评论 抢沙发
头像
欢迎您留下宝贵的见解!
提交
头像

昵称

取消
昵称表情代码图片

    暂无评论内容