package org.sxkj.system.util.excel; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.converters.WriteConverterContext; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.data.ReadCellData; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; /** * LocalDateTime转换器 * * @author * @since 2026-01-08 */ public class LocalDateTimeConverter implements Converter { private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); @Override public Class supportJavaTypeKey() { return LocalDateTime.class; } @Override public CellDataTypeEnum supportExcelTypeKey() { return CellDataTypeEnum.STRING; } @Override public LocalDateTime convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception { if (cellData == null || cellData.getStringValue() == null || cellData.getStringValue().trim().isEmpty()) { return null; } try { return LocalDateTime.parse(cellData.getStringValue(), TIME_FORMATTER); } catch (Exception e) { return null; } } @Override public WriteCellData convertToExcelData(WriteConverterContext context) throws Exception { if (context.getValue() == null) { return new WriteCellData<>(""); } return new WriteCellData<>(context.getValue().format(TIME_FORMATTER)); } }