easyexcel导出的时候,涉及到部分字段由数据库数字状态,导出到excel时为文字。方法有很多,下面给出一个自定义converter的方法。 自定义一个converter转换器实现converter,重写了导出转换convertToExcelData方法,搞成工具类。然后在对应字段加上注解完成。需要变通的地方就是泛型的指定以及if else那个地方换一下就能用。 import com.alibaba.excel.converters.Converter; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; public class AppointSourceConvert implements Converter<Integer> { @Override public WriteCellData<Integer> convertToExcelData(Integer i, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { if (i == 1) { return new WriteCellData<>("挂号预约"); } else if (i == 2) { return new WriteCellData<>("复诊预约"); } return new WriteCellData<>(" "); } }
/** * 预约类型 1、挂号预约 2、复诊预约 */ @ExcelProperty(value = "预约类型", index = 2,converter = AppointTypeConvert.class) private Integer appointType;
20240731.
这篇文章是刚刚入行且刚刚开始写后端的时候留的笔记,没想到现在还有人在看和点赞。看着这简陋不堪的笔记,心血来潮今天更新一下。
这个问题在查csdn的话,应该和我那时候一样刚刚入行,所以今天在更新一下。针对的也是可能刚刚入行不怎么会的,大佬勿喷,大佬也可以直接略过了。
如果上面的方法没搞定,那么试试看下面的更简单。
也不往深了写,就按照最容易理解得方法来写。首先,将数字转换为汉字,那么应该就是类似于 状态(比如1代表完成,2代表未完成,3代表。。)。我还记得当时我做到这里的时候是在改bug,导出的数据的某个字段要从汉字转成对应得文字(那时候我都不知道字典是什么东西)。导出大概率是先查,然后用工具类直接实现导出。那么可以直接在查询这里,直接在sql层面就把这个字段匹配出来,比如查询得数据,1就替换成完成;其次,不在查询层面处理,那么还可以在查询出来了之后,去使用百度得ai或者chatgpt之类的,把查询出来的数据-比如查询出来的多个用户uesrs,把users里面的某个字段,做个替换,1替换成完成,2替换成未完成,喊ai给你写好了,就完成了需求。这两个方法不会写代码没关系,直接问ai,这样子就行了,比我这篇文章写的应该操作起来要更简单。
再回想那时候刚刚入行,真的是艰难,有时候遇到了问题都不知道怎么去问怎么去描述,也不可能找个同事像带娃一样教。如果你在查询这个问题并看到这里,我祝你一切顺利。