最近手上事情比较多,好几个系统排着开发计划,没人忙得晕头转向的,所以,引入了一些外包资源。主要目的是缓解交付压力,由于外包的兄弟不了解业务,就先安排一些小需求,慢慢入坑。前两天,业务提了几个小优化需求,其中就是想把之前导出的报表中有占比的字段,想要导出为百分号,我就想这个小需求简单吧,让外包兄弟试试。可是,搞了一下午,他放弃了,说搞不了。
我听着就想,这不就是加个百分号吗?用EasyExecl很简单啊。我还是很客气的说到,那算了,我来弄吧。然后就花了几分钟时间,轻松处理了。
其实,用EasyExcel导出真的很简单,这里有两种快速的方式
注解
在EasyExcel已经提供了NumberFormat注解,我们只需要在需要导出的字段上加该注解即可,该注解有两个参数:
value():指定数字格式模式,参照 java.text.DecimalFormat 的格式语法
roundingMode():指定舍入模式,默认为 RoundingMode.HALF_UP(四舍五入)
格式模式说明
NumberFormat 注解的 value 参数支持 java.text.DecimalFormat 的格式语法:
表示一个可选数字
0 表示一个必须的数字,如果相应位置没有数字则显示 0
. 表示小数点
, 表示千位分隔符
% 表示百分比
E 表示科学计数法
常用格式示例:
#.## - 保留最多两位小数
#,###.## - 使用千位分隔符并保留最多两位小数
0.00 - 显示小数点后两位,不足补0
#.##% - 以百分比形式显示,保留两位小数
先创建一个导出类并加上注解:
构建模拟数据:
进行导出:
ExcelUtil工具类:
最终效果
模版导出
我们先新建一个Execl的模版,然后设置对应的单元格格式
实体类:
全部代码:
这导出百分数不是很简单吗?怎么就搞不出来了,除了上面两种简便快捷的方式外,还可以使用Hander的方式,要稍微麻烦一些。