easyExcel自定定义类型转换

简介: easyExcel自定定义类型转换

一、使用场景

业务定义类里边,定义变量isIncludeThesis表示是否包含论文,1是,0否。导出的时候需要  1->是,0->否, 导入时需要是->1,否->0。

//是否包含论文
private Integer isIncludeThesis;

二、如何定义

泛型为类的属性的类型

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;
 
import java.util.Objects;
 
public class IsConverter implements Converter<Integer> {
    //写入数据时,将excel单元格数据转化为java
    @Override
    public Integer convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        String data = (String)cellData.getData();
        if (data!=null) {
            if (Objects.equals(data,"是")) {
                return 1;
            }else if(Objects.equals(data,"否")){
                return 0;
            }
        }
        return null;
    }
    //导出数据到excel
    @Override
    public CellData convertToExcelData(Integer value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        return new CellData(value==1?"是":"否");
    }
 
    @Override
    public Class<?> supportJavaTypeKey() {
        return String.class;
    }
 
    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }
}

三、如何使用

 @ExcelProperty(value = "是否包含论文", converter = IsConverter.class)
    private Integer isIncludeThesis;
相关文章
|
fastjson 前端开发
巧用fastjson自定义序列化类实现字段的转换
项目中突然需要增加另一个字段的查找,而这个查找需要查另一张表的记录。 但现在产品很多地方都要增加该字段,如何最快的实现该功能呢。 办法如下: 通过fastjson序列化时,增加该字段的序列化类,该序列化类通过CODE查找名称,并序列化到前端。
5726 0
|
4月前
Mapstruct自定义转换规则
Mapstruct自定义转换规则
111 1
|
5月前
类模块的练习--实现日期类
类模块的练习--实现日期类
Commons StringSubstitutor对模板占位符进行赋值
Commons StringSubstitutor对模板占位符进行赋值
212 0
|
5月前
|
XML Java 数据格式
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
spring怎么去引用/注入集合/数组类型和 怎么通过 util 名称空间创建 list以及 怎么去通过级联属性赋值
64 0
|
JSON 前端开发 Java
springboot中自定义JavaBean返回的json对象属性名称大写变小写问题
springboot中自定义JavaBean返回的json对象属性名称大写变小写问题
182 0
|
运维 Java 数据库连接
Mybatis-Plus实现公共字段自动赋值
Mybatis-Plus实现公共字段自动赋值
248 0
|
监控 Java 容器
字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》
在上一篇 「Helloworld」 中,我们初步尝试使用了 Javassist字节编程的方式,来创建我们的方法体并通过反射调用运行了结果。大致了解到创建在使用字节码编程的时候基本离不开三个核心类;ClassPool、CtClass、CtMethod,它们分别管理着对象容器、类和方法。但是我们还少用一样就是字段;CtFields,在这一章节中我们不止会使用字段,还会创建多个不同入参类型和返回值的学习。
382 0
字节码编程,Javassist篇二《定义属性以及创建方法时多种入参和出参类型的使用》
|
Java Spring
springmvc自定义类型转换器解决Date类型转换
springmvc自定义类型转换器解决Date类型转换
下一篇
无影云桌面