咔片PPT · AI自动生成演示文稿,模板丰富、排版精美 讯飞智文 · 一键生成PPT和Word,高效应对学习与办公

前言

不知道大家有没有遇到过这种需求,导出一个统计结果,行和宽的内容都不固定,列里面还有嵌套,就如下图所示

(项目特殊要求,列和行的标题内容这边就都清掉了)

大家会不会也是绞尽脑汁呢,项目上使用的是alibaba的easyexcel工具。那今天就给大家介绍下怎么生成导出这么样一个复杂的报表。基础的easyexcel使用这边就不过多介绍。

实例

这边给大家展示项目中是如何使用easyexcel导出这个复杂的报表

如图所示外层通过response将文件通过流的模式导出到浏览器进行操作,具体的处理代码在doWrite里

接下来在dowrite中,首先配置模版,然后获取业务数据,后面就是将业务数据填充到模版对应的位置

通过handle获取业务数据这边。

在handle方法里,主要是去获取所有的业务数据,然后统一放到List的中。这个类中就存着所有的业务记录

由于隐私问题。这里只给大家展示一部分。可以看到最后的list outNum就是对应着各个条件下各个城市的数量统计。

模版样式是这样子的,可以看到正常的业务数据是通过data1.的参数进行填充,这个和正常的模版导出一致。但data2.和data3往后的则是竖过来的,这个就需要调整填充模式,这个后面会详细介绍。

data1开头的是正常展示的业务数据,采用默认的填充方式。这个里面的outNum没有填充,在后面遍历的时候填充到城市下面的数据。

Data2开头的城市数据是将list的内容横向生成表头,所以采用横向填充模式,将城市列表名称一一展示成表头。

接下来展示模版里面data3往后的数据的填充。

这块内容比较复杂,首先遍历的是vos,这个是正常的业务数据,会纵向填充,这样一行一行的遍历的时候获取到条件下各个城市的指标,这个时候其实是和data2的数据对应的,所以同样修改填充模式向后填充。将各个城市的数量情况填充起来。

最后介绍一下样式调整。可以看到在模版中data2是占据着3行的,但在导出结果中其实是合并过的,这个就是用到了WriteHandler进行处理的

结尾

好了,今天就介绍到这里,有些内容可能描述的不够好,大家有什么问题可以在评论区进行留言