概念
转换器
将java的数据类型(含自定义的类)转为excel数据类型
将excel的数据类型转为java数据类型
思路
在开发中遇到我们需要将实体类中自定义的数据类型转化为excel中的格式,因为不能将自定义的类输出到excel中,只能用基本数据类型,所以需要转换(以下代码转换到excel为string类型,可以控制输出到excel中为某种基本数据类型)
将excel中的格式转化为我们实体类中的自定义数据类型,因为在用户修改excel数据时,可能会更改excel单元格式,所以我们需要判断单元格的格式,转为为我们实体类的固定的基本数据类型
步骤
在属性上加转换器类
写自定义转换器类,实现Converter <\AdditionalConfig> ,AdditionalConfig是自定义的数据类型
写转换代码
实体类:
自定义类型:
转换器:
新增:
在实体变量上添加@Excel
注解,默认为导出导入,也可以单独设置仅导入Type.IMPORT
自定义数据处理器
有时候我们希望数据展现为一个特殊的格式,或者需要对数据进行其它处理。Excel
注解提供了自定义数据处理器以满足各种业务场景。而实现一个数据处理器也是非常简单的。如下:
1、在实体类用Excel
注解handler
属性指定自定义的数据处理器
2、编写数据处理器MyDataHandler
继承ExcelHandlerAdapter
,返回值为处理后的值。
自定义隐藏属性列
有时候我们希望对列信息根据业务去动态显示,那么我们可以进行如下处理。
示例:对用户进行条件判断,符合条件则隐藏属性。导出的文件则不会显示此列信息。
导出对象的子列表
有时候对象里面还包含集合列表,例如用户管理包含多个角色需要导出,那么我们可以进行如下处理。
SysUser.java
SysRole.java
测试验证
导出文件结果