package org.sxkj.fw.utils.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<LocalDateTime> {
|
|
private static final DateTimeFormatter TIME_FORMATTER = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
|
|
@Override
|
public Class<LocalDateTime> 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<LocalDateTime> context) throws Exception {
|
if (context.getValue() == null) {
|
return new WriteCellData<>("");
|
}
|
return new WriteCellData<>(context.getValue().format(TIME_FORMATTER));
|
}
|
}
|