easyExcel 填写导出转换日期格式

在使用easyExcel 填写导出的时候,遇到Date类型的字段填写在excel,显示的单元格的格式为自定义格式,原本该单元格格式设置了边框,居中,填写导出后的居然没有加边框,也没有居中。按照源码,写上一个Date转换类,实现Converter接口,重写它的方法,如下:

package com.lxj.common.convert;

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;

import java.text.SimpleDateFormat;
import java.util.Date;

/**
 *
 * @Author: lxj
 * @Date: 2022/7/19
 * @Description: yyyy-MM-dd easyExcel 日期转换
 */
public class DateConverter implements Converter<Date> {

    private static  final String PATTERN_YYYY_MM_DD = "yyyy-MM-dd";

    @Override
    public Class<?> supportJavaTypeKey() {
        return Converter.super.supportJavaTypeKey();
    }

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

    @Override
    public WriteCellData<?> convertToExcelData(Date value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        SimpleDateFormat sdf = new SimpleDateFormat(PATTERN_YYYY_MM_DD);
        String dateValue = sdf.format(value);
        return new WriteCellData<>(dateValue);
    }
}

然后,在实体类属性上写上@ExcelProperty注解

@ExcelProperty(converter = DateConverter.class)
private Date date;

需要不同的日期格式,可以写多个日期格式转换的类即可,

经验分享 程序员 微信小程序 职场和发展