【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更

历史文章(文章累计460+)
《国内最全的系列之一》
《国内最全的系列之二》
《国内最全的系列之三》
《国内最全的系列之四》
《国内最全的系列之五》
《国内最全的系列之六》
【实战系列】 Boot集成 - 第467篇
应用场景实战,拥有等于拥有最强大脑 - 第6篇
文心一言 PK,二者究竟谁更胜一筹 - 第7篇
用画个美女,AI绘画也太强大了!!! - 第8篇
悟纤:师傅,你有空吗?
师傅:有事找我?
悟纤:这不上一次留下的问题,还没解决吗 。
师傅:瞧最近师傅忙的,都把这个事情忘记了 。
悟纤:没事,重要的事情,徒儿都会记得 。
师傅:那今天刚好有时间,就和你讲讲 。
悟纤:好叻,时刻准备着学习 。
导读
Hi,大家好,我是悟纤 。
我就是我,不一样的烟火 。我就是我,与众不同的小苹果 。
在前一小节,在 Boot中集成了,并且编写了一个导出Excel数据的例子:
数据是正常导出了,但导出的样式还是存在一些问题:
(1)姓名单元格都快把你我挤坏了 。
(2)性别怎么能显示数字呢,不得显示对应的男/女吗?
(3)图片显示的地址问题也不大,但是产品还是希望能够显示为图片呢 。
(4)出生日期格式也不友好呀 。
一、@Excel
@Excel作用到filed上面,是对Excel一列的一个描述
1.1 width设置列宽
上面导出的表格,太挤,就是列宽的问题,设置一下属性width即可:
@Excel(name = "姓名",width = 15)private String realName;?
此时导出的效果就会好很多 。
对于手机号/邮箱/描述,显示不全,也是相同的问题,设置下width属性,效果如下:
1.2 日期格式化
对于生成日期,看着这格式也没谁了,这个格式Mon Apr 24 16:36:34 CST 2023,领导看了肯定要挨骂了 。对于格式可以通过属性进行处理:
@Excel(name = "出生日期",format = "yyyy-MM-dd",width = 15)
导出看下效果,真的是:
现在定义的类型是Date类型,此时如果数据库定义的是一个类型,而我们导出对象确实Date类型,这个怎么进行格式转换,很简单,只需要执行一个属性:
="";
【【EasyPoi实战系列】Spring Boot使用EasyPoi的注解让表格更】导出时间设置,如果字段是Date类型则不需要设置数据库如果是类型,这个需要设置这个数据库格式,用以转换时间格式输出 。
1.3 类型转换
在上面的性别是数字0/1,但希望导出的结果是男/女 。这个可以两个属性进行实现:
:值的替换 导出是{a_id,b_id}导入反过来 。
:文字后缀,如% 90变成90% 。
@Excel(name = "性别",replace = { "男_1", "女_2" }, suffix = "生")private Integer sex;?
到这里效果就几乎接近完美了:
二、图片的导出
图片的导出稍微复杂一丢丢,这里单独来说一下,主要有两种方式的图片的导出 。
2.1从file读取
@Excel(name = "头像地址",type = 2, imageType = 1,width = 40,height = 40)private String avatar;?
type =2该字段类型为图片,=1 (默认可以不填),表示从file读取,字段类型是个字符串类型可以用相对路径也可以用绝对路径,绝对路径优先依次获取 。
先使用绝对路径填充下数据:
users.add(new UserExportVO("悟纤",1,new Date(),"18688888888","1688@qq.com","/Users/linxiangxian/Downloads/001.jpg","公众号SpringBoot"));?users.add(new UserExportVO("师傅",1,new Date(),"18666666666","1888@qq.com","/Users/linxiangxian/Downloads/001.jpg","公众号SpringBoot"));