EasyExcel进阶之一个填充模版动态生成多个Sheet页

EasyExcel进阶之一个填充模版动态生成多个Sheet页,今天收到一个导出Excel的需求,这种需求经常做,看到模版还是是有点复杂的有头有行,一般的导出是不好做,使用模板填充比较简单!另外还有一个需求小编是第一次见,所以来记录一下,为后来人铺路!,需求:导出有单子的头信息和一些多个行信息,前端可以多选,「多个放在一个excel里的sheet中」,明白了需求我们技术选型,现在基本都是EasyExcel用的比较多,今天使用的版本为:3.1.5,低版本已经不维护,建议使用高点的版本哈!,「在这里先说一下,EasyExcel单独是无法实现一个模版动态填充多个sheet页,所以我们使用POI来帮忙复制sheet页即可!」,我简化了一些功能,自己做了一个简单的模板,但是功能都是有的,大致如下图所示:,「多个就使用合同号作为sheet名称,每个里面也会有多个行垂直填充即可!」,EasyExcel进阶之一个填充模版动态生成多个Sheet页,EasyExcel进阶之一个填充模版动态生成多个Sheet页,中间使用了Hutool来获取流,很多公司不让使用Hutool的,大家自己选择,不使用可以用:,本次使用Hutool的ClassPathResource。,为了方便直接写在Controller里了,大家不要学习哈,业务的处理还是要在service里写!,整体思路:,使用POI的XSSFWorkbook 来根据要导出的个数来进行「复制sheet页」,名称为合同号,将复制好的sheet页转换成字节数组,然后再通过输入流的方式读取字节数组中的数据。,EasyExcel 将使用输入流中的模板数据生成 Excel 数据,并将生成的 Excel 文件写入到 HttpServletResponse 的输出流中,以便将其发送给客户端进行下载或其他处理。,创建一个 WriteSheet 对象,并将其与上面复制的sheet页名称关联,就可以往里面填充数据了!,如果有这种list多个行填充的并且list不是最后一行,下面还有数据需要填充 就必须设置 forceNewRow=true,不加的话会把你后面的内容给覆盖了!,但是这个就会把所有数据放到内存 会很耗内存!,「用完记得把流关闭哈!」,这样就完成了,主要的难点是复制sheet页,多行填充在EasyExcel官网都是有的,还有一些我这边没有用到的东西,大家可以根据自己的需求去找找看!,EasyExcel填充地址:https://easyexcel.opensource.alibaba.com/docs/current/quickstart/fill。

文章版权声明

 1 原创文章作者:cmcc,如若转载,请注明出处: https://www.52hwl.com/28654.html

 2 温馨提示:软件侵权请联系469472785#qq.com(三天内删除相关链接)资源失效请留言反馈

 3 下载提示:如遇蓝奏云无法访问,请修改lanzous(把s修改成x)

 免责声明:本站为个人博客,所有软件信息均来自网络 修改版软件,加群广告提示为修改者自留,非本站信息,注意鉴别

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023年6月23日
下一篇 2023年7月15日