From 2c65c9236a2ce6bfd3f9796df20a5e1f78aaa441 Mon Sep 17 00:00:00 2001 From: BrodyGao Date: Fri, 19 Apr 2024 11:00:11 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E4=BF=AE=E6=94=B9Excel=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E5=9B=A0=E5=AE=9E=E4=BD=93=E7=B1=BB=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=B1=9E=E6=80=A7=E5=8F=98=E6=9B=B4=E4=B8=BALocalDate?= =?UTF-8?q?Time=E5=90=8E=EF=BC=8C=E6=97=B6=E9=97=B4coverter=E7=B1=BB?= =?UTF-8?q?=E5=9E=8B=E8=BD=AC=E6=8D=A2=E5=BC=82=E5=B8=B8=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E5=87=BA=E7=BB=93=E6=9E=9C=E4=B8=BA=E7=A9=BA=E7=9A=84=E9=97=AE?= =?UTF-8?q?=E9=A2=98=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../net/maku/system/vo/SysLogLoginVO.java | 6 +-- .../net/maku/system/vo/SysUserExcelVO.java | 4 +- .../common/excel/LocalDateTimeConverter.java | 43 +++++++++++++++++++ .../src/test/java/net/maku/EasyExcelTest.java | 4 +- 4 files changed, 50 insertions(+), 7 deletions(-) create mode 100644 maku-framework/src/main/java/net/maku/framework/common/excel/LocalDateTimeConverter.java diff --git a/maku-boot-system/src/main/java/net/maku/system/vo/SysLogLoginVO.java b/maku-boot-system/src/main/java/net/maku/system/vo/SysLogLoginVO.java index 86adc23..d189a91 100644 --- a/maku-boot-system/src/main/java/net/maku/system/vo/SysLogLoginVO.java +++ b/maku-boot-system/src/main/java/net/maku/system/vo/SysLogLoginVO.java @@ -8,7 +8,7 @@ import com.fhs.core.trans.constant.TransType; import com.fhs.core.trans.vo.TransPojo; import io.swagger.v3.oas.annotations.media.Schema; import lombok.Data; -import net.maku.framework.common.excel.DateConverter; +import net.maku.framework.common.excel.LocalDateTimeConverter; import net.maku.framework.common.utils.DateUtils; import java.io.Serializable; @@ -61,9 +61,9 @@ public class SysLogLoginVO implements Serializable, TransPojo { @ExcelProperty(value = "操作信息") private String operationLabel; - @ExcelProperty(value = "创建时间", converter = DateConverter.class) + @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class) @Schema(description = "创建时间") @JsonFormat(pattern = DateUtils.DATE_TIME_PATTERN) private LocalDateTime createTime; -} \ No newline at end of file +} diff --git a/maku-boot-system/src/main/java/net/maku/system/vo/SysUserExcelVO.java b/maku-boot-system/src/main/java/net/maku/system/vo/SysUserExcelVO.java index a67e6df..b9f1dad 100644 --- a/maku-boot-system/src/main/java/net/maku/system/vo/SysUserExcelVO.java +++ b/maku-boot-system/src/main/java/net/maku/system/vo/SysUserExcelVO.java @@ -6,7 +6,7 @@ import com.fhs.core.trans.anno.Trans; import com.fhs.core.trans.constant.TransType; import com.fhs.core.trans.vo.TransPojo; import lombok.Data; -import net.maku.framework.common.excel.DateConverter; +import net.maku.framework.common.excel.LocalDateTimeConverter; import java.io.Serializable; import java.time.LocalDateTime; @@ -63,7 +63,7 @@ public class SysUserExcelVO implements Serializable, TransPojo { @ExcelProperty(value = "超级管理员") private String superAdminLabel; - @ExcelProperty(value = "创建时间", converter = DateConverter.class) + @ExcelProperty(value = "创建时间", converter = LocalDateTimeConverter.class) private LocalDateTime createTime; } diff --git a/maku-framework/src/main/java/net/maku/framework/common/excel/LocalDateTimeConverter.java b/maku-framework/src/main/java/net/maku/framework/common/excel/LocalDateTimeConverter.java new file mode 100644 index 0000000..1e37e72 --- /dev/null +++ b/maku-framework/src/main/java/net/maku/framework/common/excel/LocalDateTimeConverter.java @@ -0,0 +1,43 @@ +package net.maku.framework.common.excel; + +import cn.hutool.core.date.LocalDateTimeUtil; +import com.alibaba.excel.converters.Converter; +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 net.maku.framework.common.utils.DateUtils; + +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; + +/** + * 日期转换 + * + * @author eden + */ +public class LocalDateTimeConverter implements Converter { + + @Override + public Class supportJavaTypeKey() { + return LocalDateTime.class; + } + + @Override + public CellDataTypeEnum supportExcelTypeKey() { + return CellDataTypeEnum.STRING; + } + + @Override + public LocalDateTime convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { + String dateString = cellData.getStringValue(); + return dateString == null ? null : LocalDateTimeUtil.parse(dateString, DateTimeFormatter.ofPattern(DateUtils.DATE_TIME_PATTERN)); + } + + @Override + public WriteCellData convertToExcelData(LocalDateTime value, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) { + String dateValue = LocalDateTimeUtil.format(value, DateUtils.DATE_TIME_PATTERN); + return new WriteCellData<>(dateValue); + } +} diff --git a/maku-server/src/test/java/net/maku/EasyExcelTest.java b/maku-server/src/test/java/net/maku/EasyExcelTest.java index a7107c3..9d96a6e 100644 --- a/maku-server/src/test/java/net/maku/EasyExcelTest.java +++ b/maku-server/src/test/java/net/maku/EasyExcelTest.java @@ -2,8 +2,8 @@ package net.maku; import com.alibaba.excel.annotation.ExcelProperty; import lombok.Data; -import net.maku.framework.common.excel.DateConverter; import net.maku.framework.common.excel.ExcelFinishCallBack; +import net.maku.framework.common.excel.LocalDateTimeConverter; import net.maku.framework.common.utils.ExcelUtils; import org.junit.jupiter.api.Test; @@ -64,7 +64,7 @@ public class EasyExcelTest { @ExcelProperty("小数") private Double decimals; - @ExcelProperty(value = "日期", converter = DateConverter.class) + @ExcelProperty(value = "日期", converter = LocalDateTimeConverter.class) private LocalDateTime date; } -- Gitee