背景
导出数据库中的数据,有些字段格式为
LocalDateTime
需要转化为String
.
软件版本
springboot 2.7.17
easyexcel 3.0.5
代码
//实现相关接口,进行格式转化
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;import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;public class LocalDateTimeConverter implements Converter<LocalDateTime> {@Overridepublic Class<LocalDateTime> supportJavaTypeKey() {return LocalDateTime.class;}@Overridepublic WriteCellData<String> convertToExcelData(LocalDateTime value, ExcelContentProperty contentProperty,GlobalConfiguration globalConfiguration) {return new WriteCellData<>(value.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss")));}
}
调用
//方法一:
EasyExcel.write(excel, ExcelHeadClass.class).registerConverter(new LocalDateTimeConverter()).sheet("Shee名称").doWrite(dataList);
//方法二:可以在字段属性上加@ExcelProperty注解的converter属性指定类
@ExcelProperty(value = "Create Datetime" , converter = LocalDateTimeConverter.class)
说明
转换接口提供了类型支持和数据转换的接口。比如从Excel读取数据处理为java bean的对应属性格式,或者将java bean转化为Excel保存对应的格式。
具体参考Converter泛型接口
。