admin管理员组

文章数量:1538130

SpringBoot集成阿里easyexcel(四)Converter导入导出数据转换器

通过com.alibaba.excel.converters.Converter转换器实现Excel导入导出时Java数据与Excel数据的转换。可用于枚举值转换或者数值格式转换(也可直接在字段上使用@NumberFormat(“0.#%”))
一、定义功能功能转换器
实现Converter,T为需要转换成的Java的数据类型。convertToJavaData为转换为Java数据的方法,convertToExcelData为转换为Excel数据的方法,

package com.richstonedt.cmp.model.common;

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.text.DecimalFormat;

public class NumberConverter implements Converter<Float> {
    @Override
    public Class supportJavaTypeKey() {
        return Float.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    @Override
    public Float convertToJavaData(CellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
    	//cellData是当前单元格的数据
        if(cellData.getStringValue()==null){
            return Float.valueOf(cellData.getNumberValue().floatValue());
        }else {
            return Float.valueOf(cellData.getStringValue());
        }
    }

    @Override
    public CellData convertToExcelData(Float value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
    	//value是当前需要转换为单元格数据的JAVA数据
        DecimalFormat format=new DecimalFormat("0.0#");
        return new CellData(format.format(value.floatValue()));
    }
}

本文标签: 阿里转换器数据SpringBootConverter