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.LocalTime; import java.time.format.DateTimeFormatter; /** * Excel LocalTime 转换器 * * FastExcel 内置只支持 Date / LocalDateTime,遇到 LocalTime 字段会抛 * {@code ExcelWriteDataConvertException: Can not find 'Converter' support class LocalTime}, * 因此这里补一个转换器,供班次、考勤规则等含时间字段的 VO 导出时使用。 * * @author 超级管理员 */ public class LocalTimeConvert implements Converter { private static final DateTimeFormatter FORMATTER = DateTimeFormatter.ofPattern("HH:mm"); @Override public Class supportJavaTypeKey() { throw new UnsupportedOperationException("暂不支持,也不需要"); } @Override public CellDataTypeEnum supportExcelTypeKey() { throw new UnsupportedOperationException("暂不支持,也不需要"); } @Override public WriteCellData convertToExcelData(LocalTime value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { if (value == null) { return new WriteCellData<>(""); } return new WriteCellData<>(value.format(FORMATTER)); } }