package com.sw.mes.itemclean.clean.utils;

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.time.LocalDateTime;
import java.time.format.DateTimeFormatter;

/**
 * @author zhaoyayun
 **/
public class LocalDateStringConverter implements Converter<LocalDateTime>{
    /**
     * 自定义LocalDateStringConverter
     * 用于解决使用easyexcel导出表格时候，默认不支持LocalDateTime日期格式
     *
     * 在需要的属性上添加注解 @ExcelProperty(value = "****", converter = LocalDateStringConverter.class)
     */
    @Override
    public Class supportJavaTypeKey() {
        return LocalDateTime.class;
    }

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

        @Override
        public LocalDateTime convertToJavaData(CellData cellData, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
            return LocalDateTime.parse(cellData.getStringValue(), DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
        }

        @Override
        public CellData convertToExcelData(LocalDateTime localDateTime, ExcelContentProperty excelContentProperty, GlobalConfiguration globalConfiguration) throws Exception {
            DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
            String format = formatter.format(localDateTime);
            return new CellData(format);
        }

}
