package cn.iocoder.yudao.framework.excel.core.convert; import cn.idev.excel.converters.Converter; import cn.idev.excel.enums.CellDataTypeEnum; import cn.idev.excel.metadata.GlobalConfiguration; import cn.idev.excel.metadata.data.WriteCellData; import cn.idev.excel.metadata.property.ExcelContentProperty; import java.time.LocalDate; import java.time.format.DateTimeFormatter; /** * LocalDate 写出为纯文本(yyyy-MM-dd)的转换器 * *

默认 FastExcel 把日期写成「日期单元格」,在 Excel 里显示为 46023.0 这类序列号, * 使用者看不懂该填什么格式。导入模板类场景注册本转换器后,日期以文本输出,直观可读。

* *

注意:仅用于「写出模板」,不要用于导入解析。

* * @author 超级管理员 */ public class LocalDateStringConverter implements Converter { private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd"); @Override public Class supportJavaTypeKey() { return LocalDate.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public WriteCellData convertToExcelData(LocalDate value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { return new WriteCellData<>(value.format(FORMATTER)); } }