From 99e527e9b4e3560fa06669a1e541233243bd5eef Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 17:05:00 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=BC=E5=BC=8F=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/alibaba/excel/util/FileUtils.java | 2 +- easyexcel-test/pom.xml | 2 +- .../test/core/dataformat/DateFormatData.java | 1 + .../test/core/dataformat/DateFormatTest.java | 8 +++++++- .../test/resources/dataformat/dataformat.xls | Bin 28672 -> 28672 bytes .../test/resources/dataformat/dataformat.xlsx | Bin 12460 -> 12615 bytes 6 files changed, 10 insertions(+), 3 deletions(-) diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/FileUtils.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/FileUtils.java index f514f6f7..7a09de9a 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/util/FileUtils.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/FileUtils.java @@ -154,7 +154,7 @@ public class FileUtils { } public static void createPoiFilesDirectory() { - TempFile.setTempFileCreationStrategy(new EasyExcelTempFileCreationStrategy()); + //TempFile.setTempFileCreationStrategy(new EasyExcelTempFileCreationStrategy()); } public static File createCacheTmpFile() { diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index cd1bdb91..8c540b22 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -74,7 +74,7 @@ /com/alibaba/easyexcel/test/core/**/*.java - true + false diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatData.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatData.java index 5958161c..31cdd85d 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatData.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatData.java @@ -13,6 +13,7 @@ import lombok.Setter; public class DateFormatData { private String date; private String dateStringCn; + private String dateStringCn2; private String dateStringUs; private String number; private String numberStringCn; diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatTest.java index 43a00fae..655239f8 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/dataformat/DateFormatTest.java @@ -3,6 +3,7 @@ package com.alibaba.easyexcel.test.core.dataformat; import java.io.File; import java.util.List; import java.util.Locale; +import java.util.Objects; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; @@ -54,7 +55,12 @@ public class DateFormatTest { } } for (DateFormatData data : list) { - Assertions.assertEquals(data.getDateStringCn(), data.getDate()); + // The way dates are read in Chinese is different on Linux and Mac, so it is acceptable if it matches either one. + // For example, on Linux: 1-Jan -> 1-1月 + // On Mac: 1-Jan -> 1-δΈ€ζœˆ + Assertions.assertTrue( + Objects.equals(data.getDateStringCn(), data.getDate()) || Objects.equals(data.getDateStringCn2(), + data.getDate())); Assertions.assertEquals(data.getNumberStringCn(), data.getNumber()); } } diff --git a/easyexcel-test/src/test/resources/dataformat/dataformat.xls b/easyexcel-test/src/test/resources/dataformat/dataformat.xls index c8afd6461f3398c3405321a0358d024cf55f2719..ec0c39ba4bf089807e3ec96247e79d7c6aec10fb 100644 GIT binary patch delta 1846 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 W%??-OlSIY_!bA8N(KopN1pf{0!GQh% delta 5968 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