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 {
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 {
DecimalFormat format=new DecimalFormat("0.0#");
return new CellData(format.format(value.floatValue()));
}
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)