easyexcel导出MySQL_EasyExcel converter转换数据库映射关系

本文介绍如何在项目中利用EasyExcel的Converter功能,动态地将数据库中的映射关系转换为易于理解的文本。通过SpringBoot的ApplicationContext获取数据库访问组件,实现了自定义的EnableStatusConverter,以Integer到状态名称的转换为例,展示了如何在Excel导出时灵活处理数据库映射。
摘要由CSDN通过智能技术生成

项目中的需求:导出功能,且有些字段是需要通过数据库存储的数据字典来进行翻译转换。比如:企业类型,1=生产企业,2=配送企业,3=经营企业,等等。这些映射关系虽然变化频率很低,但也是动态存储在数据库中的。我们不希望将这些映射关系写死在Java代码中。

EasyExcel有个Converter功能,目前看来有两种实现方式:

一种是在@ExcelProperty注解中指定:

@ExcelProperty(value = "创建时间",index = 5,converter = DateTimeConverter.class)

private Date creTime;

一种是注册写处理器的方式,类似于:

public static void export(HttpServletResponse response, List rowList,String fileName,Class clazz,String sheetName) throws IOException {

response.setContentType("application/vnd.ms-excel");

response.setCharacterEncoding("utf-8");

response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");

EasyExcel.write(response.getOutputStream(), clazz)

.registerWriteHandler(new CustomCellWriteHandler())

.registerWriteHandler(your converter constructor)//这里可以继续添加其他的转换器或处理器

.sheet(sheetName).doWrite(rowList);

}

这两种方式各自有缺点:

注解方式:这种方式直接使用的话,无法动态维护映射关系。假设我们已经有了映射关系范围,无法通过构造

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值