EasyExcel动态标题,设置自定义列宽(一)

作者在满足自定义报表需求时,遇到标题换行和列宽问题。通过查找资料,发现并使用了EasyExcel的LongestMatchColumnWidthStyleStrategy策略来实现自适应列宽,对相关博客进行了吐槽。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

近期有个自定义报表的需求,自动维护一张大宽表数据池,报表的数据都从这个表取,用户可以配置报表所需要的字段,然后可以支持导出,所以导出也需要自定义,没法按EasyExcel注解方式实现。

翻遍了官方文档以及代码样例,没有找到这种自定义列的报表实现方式,各种找资料最终实现出来了,但是,不是很满意,标题自动换行了,太丑了。。。
在这里插入图片描述
又开始找资料,准备改写表头样式,自适应列宽

找了一篇博文,自己实现官方策略的方案,正准备cv😀,copy过来后,发现他的版本与我的不一样,好多东西已经不适用了
然后再次翻找,找到一个说有官方默认策略的博文,我一看看样子是设置所有单元格统一宽度的,不适用于我,不过我转念一想,这个自适应列宽应该是个很常见的需求,会不会官方也有这种策略的实现了,我按这个博文提供的官方类去找,果然有个LongestMatchColumnWidthStyleStrategy的实现类,最长匹配字段宽度格式策略,这不就是我要的吗!

EasyExcel.write(response.getOutputStream()).head(headList)
                    .sheet(result.getReportTitle())
                    .doWrite(dataList);

使用也简单,就在之前的写法里加个.registerWriteHandler,将使用的策略放进来就行了

EasyExcel.write(response.getOutputStream()).head(headList)
                    .sheet(result.getReportTitle())
                    .registerWriteHandler(new LongestMatchColumnWidthStyleStrategy())
                    .doWrite(dataList);

最终效果:
在这里插入图片描述

这里是吐槽
前面我说的准备cv的那篇博文,“本博客不是写给小白的,小白可以去官网看案例”,结果他里面的策略(我准备cv的)就是直接使用的官方的LongestMatchColumnWidthStyleStrategy,变量名都一样,没有一点改动。。。我不清楚为什么不直接使用官方的,而自己新建一个类写了一个出来???
我专门去git上查看了官方的仓库里这个类的创建时间,明细是早于这个博客的时间的,排除了是这个博主自己的实现,然后贡献给了EasyExcel开源的丝丝可能,明显是copy的官方的代码!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿狸尬多

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值