From 21e50a50646d44400c26285454e71701120d9390 Mon Sep 17 00:00:00 2001 From: linghengqian Date: Tue, 27 Dec 2022 23:13:35 +0800 Subject: [PATCH 01/22] Update Apache POI to 5.2.3 in preparation for GraalVM NativeTest --- easyexcel-core/pom.xml | 4 -- .../excel/analysis/v07/XlsxSaxAnalyser.java | 14 +++-- .../alibaba/excel/metadata/csv/CsvCell.java | 5 -- .../excel/metadata/csv/CsvCellStyle.java | 43 ++++------------ .../alibaba/excel/metadata/csv/CsvSheet.java | 17 +++++++ .../excel/metadata/csv/CsvWorkbook.java | 51 ++++++++----------- .../easyexcel/test/temp/Lock2Test.java | 2 +- .../test/temp/dataformat/DataFormatter1.java | 13 ++--- pom.xml | 11 ++-- 9 files changed, 64 insertions(+), 96 deletions(-) diff --git a/easyexcel-core/pom.xml b/easyexcel-core/pom.xml index d6e58002..d192402d 100644 --- a/easyexcel-core/pom.xml +++ b/easyexcel-core/pom.xml @@ -28,10 +28,6 @@ org.apache.poi poi-ooxml - - org.apache.poi - poi-ooxml-schemas - org.apache.commons commons-csv diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java b/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java index 5104b1e3..024789b8 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/analysis/v07/XlsxSaxAnalyser.java @@ -31,7 +31,6 @@ import com.alibaba.excel.util.SheetUtils; import com.alibaba.excel.util.StringUtils; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.openxml4j.exceptions.InvalidFormatException; import org.apache.poi.openxml4j.opc.OPCPackage; import org.apache.poi.openxml4j.opc.PackageAccess; @@ -41,10 +40,9 @@ import org.apache.poi.openxml4j.opc.PackageRelationshipCollection; import org.apache.poi.openxml4j.opc.PackagingURIHelper; import org.apache.poi.ss.util.CellAddress; import org.apache.poi.xssf.eventusermodel.XSSFReader; +import org.apache.poi.xssf.model.Comments; import org.apache.poi.xssf.model.CommentsTable; -import org.apache.poi.xssf.model.SharedStringsTable; import org.apache.poi.xssf.usermodel.XSSFComment; -import org.apache.poi.xssf.usermodel.XSSFRelation; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbook; import org.openxmlformats.schemas.spreadsheetml.x2006.main.CTWorkbookPr; import org.openxmlformats.schemas.spreadsheetml.x2006.main.WorkbookDocument; @@ -121,9 +119,9 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { sheetList.add(new ReadSheet(index, ite.getSheetName())); sheetMap.put(index, inputStream); if (xlsxReadContext.readWorkbookHolder().getExtraReadSet().contains(CellExtraTypeEnum.COMMENT)) { - CommentsTable commentsTable = ite.getSheetComments(); - if (null != commentsTable) { - commentsTableMap.put(index, commentsTable); + Comments comments = ite.getSheetComments(); + if (comments instanceof CommentsTable) { + commentsTableMap.put(index, (CommentsTable) comments); } } if (xlsxReadContext.readWorkbookHolder().getExtraReadSet().contains(CellExtraTypeEnum.HYPERLINK)) { @@ -179,7 +177,7 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { } private void analysisSharedStringsTable(InputStream sharedStringsTableInputStream, - XlsxReadWorkbookHolder xlsxReadWorkbookHolder) throws Exception { + XlsxReadWorkbookHolder xlsxReadWorkbookHolder) { ContentHandler handler = new SharedStringsTableHandler(xlsxReadWorkbookHolder.getReadCache()); parseXmlSource(sharedStringsTableInputStream, handler); xlsxReadWorkbookHolder.getReadCache().putFinished(); @@ -199,7 +197,7 @@ public class XlsxSaxAnalyser implements ExcelReadExecutor { } File readTempFile = FileUtils.createCacheTmpFile(); xlsxReadWorkbookHolder.setTempFile(readTempFile); - File tempFile = new File(readTempFile.getPath(), UUID.randomUUID().toString() + ".xlsx"); + File tempFile = new File(readTempFile.getPath(), UUID.randomUUID() + ".xlsx"); if (decryptedStream != null) { FileUtils.writeToFile(tempFile, decryptedStream, false); } else { diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java index 72beb30a..a75c5765 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCell.java @@ -227,11 +227,6 @@ public class CsvCell extends CellBase { return getCellType(); } - @Override - public CellType getCachedFormulaResultTypeEnum() { - return getCellType(); - } - @Override public String getCellFormula() { if (formulaData == null) { diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCellStyle.java b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCellStyle.java index a992f213..7a2714a0 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCellStyle.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvCellStyle.java @@ -76,7 +76,7 @@ public class CsvCellStyle implements CellStyle { } @Override - public short getFontIndex() { + public int getFontIndex() { return 0; } @@ -125,11 +125,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public HorizontalAlignment getAlignmentEnum() { - return null; - } - @Override public void setWrapText(boolean wrapped) { @@ -150,11 +145,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public VerticalAlignment getVerticalAlignmentEnum() { - return null; - } - @Override public void setRotation(short rotation) { @@ -185,11 +175,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public BorderStyle getBorderLeftEnum() { - return null; - } - @Override public void setBorderRight(BorderStyle border) { @@ -200,11 +185,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public BorderStyle getBorderRightEnum() { - return null; - } - @Override public void setBorderTop(BorderStyle border) { @@ -215,11 +195,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public BorderStyle getBorderTopEnum() { - return null; - } - @Override public void setBorderBottom(BorderStyle border) { @@ -230,11 +205,6 @@ public class CsvCellStyle implements CellStyle { return null; } - @Override - public BorderStyle getBorderBottomEnum() { - return null; - } - @Override public void setLeftBorderColor(short color) { @@ -286,12 +256,12 @@ public class CsvCellStyle implements CellStyle { } @Override - public FillPatternType getFillPatternEnum() { - return null; + public void setFillBackgroundColor(short bg) { + } @Override - public void setFillBackgroundColor(short bg) { + public void setFillBackgroundColor(Color color) { } @@ -310,6 +280,11 @@ public class CsvCellStyle implements CellStyle { } + @Override + public void setFillForegroundColor(Color color) { + + } + @Override public short getFillForegroundColor() { return 0; diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java index 725addbc..317569e0 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvSheet.java @@ -33,6 +33,8 @@ import org.apache.poi.ss.usermodel.Drawing; import org.apache.poi.ss.usermodel.Footer; import org.apache.poi.ss.usermodel.Header; import org.apache.poi.ss.usermodel.Hyperlink; +import org.apache.poi.ss.usermodel.PageMargin; +import org.apache.poi.ss.usermodel.PaneType; import org.apache.poi.ss.usermodel.PrintSetup; import org.apache.poi.ss.usermodel.Row; import org.apache.poi.ss.usermodel.Sheet; @@ -397,11 +399,21 @@ public class CsvSheet implements Sheet, Closeable { return 0; } + @Override + public double getMargin(PageMargin pageMargin) { + return 0; + } + @Override public void setMargin(short margin, double size) { } + @Override + public void setMargin(PageMargin pageMargin, double v) { + + } + @Override public boolean getProtect() { return false; @@ -467,6 +479,11 @@ public class CsvSheet implements Sheet, Closeable { } + @Override + public void createSplitPane(int i, int i1, int i2, int i3, PaneType paneType) { + + } + @Override public PaneInformation getPaneInformation() { return null; diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvWorkbook.java b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvWorkbook.java index 4e713509..f381d482 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvWorkbook.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/metadata/csv/CsvWorkbook.java @@ -11,7 +11,9 @@ import lombok.Getter; import lombok.Setter; import org.apache.commons.compress.utils.Lists; import org.apache.poi.ss.SpreadsheetVersion; +import org.apache.poi.ss.formula.EvaluationWorkbook; import org.apache.poi.ss.formula.udf.UDFFinder; +import org.apache.poi.ss.usermodel.CellReferenceType; import org.apache.poi.ss.usermodel.CellStyle; import org.apache.poi.ss.usermodel.CreationHelper; import org.apache.poi.ss.usermodel.DataFormat; @@ -39,10 +41,9 @@ public class CsvWorkbook implements Workbook { /** * true if date uses 1904 windowing, or false if using 1900 date windowing. - * + *

* default is false * - * @return */ private Boolean use1904windowing; @@ -53,7 +54,7 @@ public class CsvWorkbook implements Workbook { /** * Whether to use scientific Format. - * + *

* default is false */ private Boolean useScientificFormat; @@ -185,7 +186,7 @@ public class CsvWorkbook implements Workbook { } @Override - public short getNumberOfFonts() { + public int getNumberOfFonts() { return 0; } @@ -194,11 +195,6 @@ public class CsvWorkbook implements Workbook { return 0; } - @Override - public Font getFontAt(short idx) { - return null; - } - @Override public Font getFontAt(int idx) { return null; @@ -257,31 +253,11 @@ public class CsvWorkbook implements Workbook { return null; } - @Override - public Name getNameAt(int nameIndex) { - return null; - } - @Override public Name createName() { return null; } - @Override - public int getNameIndex(String name) { - return 0; - } - - @Override - public void removeName(int index) { - - } - - @Override - public void removeName(String name) { - - } - @Override public void removeName(Name name) { @@ -402,10 +378,25 @@ public class CsvWorkbook implements Workbook { } @Override - public int addOlePackage(byte[] oleData, String label, String fileName, String command) throws IOException { + public int addOlePackage(byte[] oleData, String label, String fileName, String command) { return 0; } + @Override + public EvaluationWorkbook createEvaluationWorkbook() { + return null; + } + + @Override + public CellReferenceType getCellReferenceType() { + return null; + } + + @Override + public void setCellReferenceType(CellReferenceType cellReferenceType) { + + } + @Override public Iterator iterator() { return null; diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java index 63141ba4..13ed4ae6 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Lock2Test.java @@ -15,9 +15,9 @@ import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.alibaba.fastjson.JSON; import org.apache.commons.collections4.CollectionUtils; -import org.apache.poi.hssf.util.CellReference; import org.apache.poi.ss.usermodel.FillPatternType; import org.apache.poi.ss.usermodel.IndexedColors; +import org.apache.poi.ss.util.CellReference; import org.junit.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/dataformat/DataFormatter1.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/dataformat/DataFormatter1.java index c4dce8d3..05f3d09f 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/dataformat/DataFormatter1.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/dataformat/DataFormatter1.java @@ -38,6 +38,7 @@ import java.util.Observer; import java.util.regex.Matcher; import java.util.regex.Pattern; +import com.alibaba.excel.analysis.ExcelAnalyserImpl; import org.apache.poi.ss.format.CellFormat; import org.apache.poi.ss.format.CellFormatResult; import org.apache.poi.ss.formula.ConditionalFormattingEvaluator; @@ -54,8 +55,8 @@ import org.apache.poi.ss.usermodel.FractionFormat; import org.apache.poi.ss.util.DateFormatConverter; import org.apache.poi.ss.util.NumberToTextConverter; import org.apache.poi.util.LocaleUtil; -import org.apache.poi.util.POILogFactory; -import org.apache.poi.util.POILogger; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; /** * DataFormatter contains methods for formatting the value stored in an Cell. This can be useful for reports and GUI @@ -227,7 +228,7 @@ public class DataFormatter1 implements Observer { private final LocaleChangeObservable localeChangedObservable = new LocaleChangeObservable(); /** For logging any problems we find */ - private static POILogger logger = POILogFactory.getLogger(DataFormatter.class); + private static final Logger logger = LoggerFactory.getLogger(ExcelAnalyserImpl.class); /** * Creates a formatter using the {@link Locale#getDefault() default locale}. @@ -346,7 +347,7 @@ public class DataFormatter1 implements Observer { // Wrap and return (non-cachable - CellFormat does that) return new CellFormatResultWrapper(cfmt.apply(cellValueO)); } catch (Exception e) { - logger.log(POILogger.WARN, "Formatting failed for format " + formatStr + ", falling back", e); + logger.warn("Formatting failed for format {}, falling back", formatStr, e); } } @@ -589,7 +590,7 @@ public class DataFormatter1 implements Observer { try { return new ExcelStyleDateFormatter(formatStr, dateSymbols); } catch (IllegalArgumentException iae) { - logger.log(POILogger.DEBUG, "Formatting failed for format " + formatStr + ", falling back", iae); + logger.debug("Formatting failed for format {}, falling back", formatStr, iae); // the pattern could not be parsed correctly, // so fall back to the default number format return getDefaultFormat(cellValue); @@ -750,7 +751,7 @@ public class DataFormatter1 implements Observer { try { return new InternalDecimalFormatWithScale(format, symbols); } catch (IllegalArgumentException iae) { - logger.log(POILogger.DEBUG, "Formatting failed for format " + formatStr + ", falling back", iae); + logger.debug("Formatting failed for format {}, falling back", formatStr, iae); // the pattern could not be parsed correctly, // so fall back to the default number format return getDefaultFormat(cellValue); diff --git a/pom.xml b/pom.xml index eca83ca2..475061c0 100644 --- a/pom.xml +++ b/pom.xml @@ -96,22 +96,17 @@ org.apache.poi poi - 4.1.2 + 5.2.3 org.apache.poi poi-ooxml - 4.1.2 - - - org.apache.poi - poi-ooxml-schemas - 4.1.2 + 5.2.3 org.apache.commons commons-csv - 1.8 + 1.9.0 org.slf4j From 5264a5d56aa6a3b4e5f6a2041499130af3803b4b Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Fri, 10 Feb 2023 20:51:34 +0800 Subject: [PATCH 02/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B04.0.0-beta1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../easyexcel/test/temp/StyleTest.java | 3 +- pom.xml | 44 ++++++------------- update.md | 7 +++ 3 files changed, 22 insertions(+), 32 deletions(-) diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java index 0f1f0832..b4675b1d 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java @@ -7,7 +7,6 @@ import java.lang.reflect.Field; import java.util.Date; import java.util.List; -import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; @@ -181,7 +180,7 @@ public class StyleTest { private void isDate(Cell cell) { System.out.println( DateUtil.isADateFormat(cell.getCellStyle().getDataFormat(), cell.getCellStyle().getDataFormatString())); - System.out.println(HSSFDateUtil.isCellDateFormatted(cell)); + //System.out.println(HSSFDateUtil.isCellDateFormatted(cell)); DataFormatter f = new DataFormatter(); System.out.println(f.formatCellValue(cell)); diff --git a/pom.xml b/pom.xml index 92ba60d5..917ac555 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ - 3.2.1 + 4.0.0-beta1 UTF-8 1.8 true @@ -106,52 +106,36 @@ org.apache.commons commons-csv - 1.9.0 - - - org.slf4j - slf4j-api - 1.7.32 + 1.10.0 org.ehcache ehcache 3.9.9 - - org.projectlombok - lombok - 1.18.20 - - + - org.springframework - spring-core - 5.3.15 + org.springframework.boot + spring-boot-dependencies + 2.7.8 + pom + import - + - ch.qos.logback - logback-classic - 1.2.5 + org.projectlombok + lombok + 1.18.26 + + com.alibaba.fastjson2 fastjson2 2.0.23 - - org.springframework.boot - spring-boot-starter-web - 2.6.3 - - - junit - junit - 4.13.2 - diff --git a/update.md b/update.md index f315c5b3..5b74be9b 100644 --- a/update.md +++ b/update.md @@ -1,3 +1,10 @@ +# 4.0.0-beta1 + +* `poi`由`4.1.2`升级到`5.2.3` +* `commons-csv`由`1.9.0`升级到`1.10.0` +* `commons-csv`由`1.7.32`升级到`1.7.36` +* `ehcache`由`3.9.9`升级到`3.10.8` + # 3.2.1 * 兼容`LocalDate` [Issue #2908](https://github.com/alibaba/easyexcel/issues/2908) From 8caa034f15e3203237d58a0bec88ec147a6a3c4a Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Fri, 10 Feb 2023 20:52:01 +0800 Subject: [PATCH 03/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E5=88=B04.0.0-beta1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- update.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/update.md b/update.md index 5b74be9b..0bbdef26 100644 --- a/update.md +++ b/update.md @@ -2,7 +2,7 @@ * `poi`由`4.1.2`升级到`5.2.3` * `commons-csv`由`1.9.0`升级到`1.10.0` -* `commons-csv`由`1.7.32`升级到`1.7.36` +* `slf4j-api`由`1.7.32`升级到`1.7.36` * `ehcache`由`3.9.9`升级到`3.10.8` # 3.2.1 From 4eca3328a791f7fe9a2b71dcdfeed192c210d2f8 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Mon, 13 Feb 2023 19:59:04 +0800 Subject: [PATCH 04/22] =?UTF-8?q?=E5=BC=95=E5=85=A5jcl-over-slf4j?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easyexcel-test/pom.xml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index 73fc20d7..e13c5a9b 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -21,6 +21,13 @@ + + + org.slf4j + jcl-over-slf4j + test + + com.alibaba easyexcel-core From 65aadff8ecb237acdd8b1e1ad3656a7063e1e20a Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 5 Dec 2023 19:30:51 +0800 Subject: [PATCH 05/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=90=88=E5=B9=B6?= =?UTF-8?q?=E5=BC=82=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 62bc605b..723d0ab8 100644 --- a/pom.xml +++ b/pom.xml @@ -127,13 +127,12 @@ org.projectlombok lombok - 1.18.20 + 1.18.26 commons-io commons-io 2.11.0 - 1.18.26 From 4f4a2e6ebcfc4852e0d42eaa03f60469e492d59d Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 5 Dec 2023 19:34:53 +0800 Subject: [PATCH 06/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=BC=96=E8=AF=91?= =?UTF-8?q?=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easyexcel-test/pom.xml | 6 ----- .../easyexcel/test/temp/StyleTest.java | 1 - pom.xml | 22 +++---------------- 3 files changed, 3 insertions(+), 26 deletions(-) diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index 723e092f..be59278c 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -21,12 +21,6 @@ - - - org.slf4j - jcl-over-slf4j - test - com.alibaba diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java index f604eda6..29ac81b4 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/StyleTest.java @@ -10,7 +10,6 @@ import java.util.List; import com.alibaba.excel.EasyExcel; import com.alibaba.fastjson2.JSON; -import org.apache.poi.hssf.usermodel.HSSFDateUtil; import org.apache.poi.hssf.usermodel.HSSFRow; import org.apache.poi.hssf.usermodel.HSSFSheet; import org.apache.poi.hssf.usermodel.HSSFWorkbook; diff --git a/pom.xml b/pom.xml index 723d0ab8..2d38e69c 100644 --- a/pom.xml +++ b/pom.xml @@ -113,14 +113,10 @@ ehcache 3.9.9 - - - org.springframework.boot - spring-boot-dependencies - 2.7.8 - pom - import + commons-io + commons-io + 2.11.0 @@ -129,18 +125,6 @@ lombok 1.18.26 - - commons-io - commons-io - 2.11.0 - - - - - com.alibaba.fastjson2 - fastjson2 - 2.0.23 - From b9e76d8342a02d4813885b39e8fc2f4f5b693cc2 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Mon, 17 Jun 2024 19:50:27 +0800 Subject: [PATCH 07/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- .../listener/ModelBuildEventListener.java | 7 +-- .../com/alibaba/excel/util/BeanMapUtils.java | 4 +- .../com/alibaba/excel/util/ClassUtils.java | 2 +- .../com/alibaba/excel/util/FieldUtils.java | 3 +- .../write/executor/ExcelWriteAddExecutor.java | 4 +- easyexcel-support/pom.xml | 2 +- easyexcel-test/pom.xml | 8 ++-- .../easyexcel/test/temp/Xls03Test.java | 4 +- .../test/temp/write/TempWriteTest.java | 2 +- pom.xml | 44 +++++-------------- update.md | 6 +-- 12 files changed, 30 insertions(+), 58 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index cc68ecf9..e4270c20 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -23,7 +23,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - java: [ 8, 11, 17] + java: [ 8, 11, 17, 21] distribution: [ 'adopt' ] fail-fast: false max-parallel: 4 diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/read/listener/ModelBuildEventListener.java b/easyexcel-core/src/main/java/com/alibaba/excel/read/listener/ModelBuildEventListener.java index c3fb3bc9..fab5a7c6 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/read/listener/ModelBuildEventListener.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/read/listener/ModelBuildEventListener.java @@ -4,9 +4,6 @@ import java.math.BigDecimal; import java.time.LocalDateTime; import java.util.Map; -import javax.print.DocFlavor.STRING; - -import com.alibaba.excel.constant.EasyExcelConstants; import com.alibaba.excel.context.AnalysisContext; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.enums.HeadKindEnum; @@ -17,15 +14,13 @@ import com.alibaba.excel.metadata.data.DataFormatData; import com.alibaba.excel.metadata.data.ReadCellData; import com.alibaba.excel.read.metadata.holder.ReadSheetHolder; import com.alibaba.excel.read.metadata.property.ExcelReadHeadProperty; +import com.alibaba.excel.support.cglib.beans.BeanMap; import com.alibaba.excel.util.BeanMapUtils; -import com.alibaba.excel.util.BooleanUtils; import com.alibaba.excel.util.ClassUtils; import com.alibaba.excel.util.ConverterUtils; import com.alibaba.excel.util.DateUtils; import com.alibaba.excel.util.MapUtils; -import com.alibaba.excel.util.StringUtils; -import org.springframework.cglib.beans.BeanMap; /** * Convert to the object the user needs diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/BeanMapUtils.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/BeanMapUtils.java index 30b2c692..29926aa0 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/util/BeanMapUtils.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/BeanMapUtils.java @@ -1,7 +1,7 @@ package com.alibaba.excel.util; -import org.springframework.cglib.beans.BeanMap; -import org.springframework.cglib.core.DefaultNamingPolicy; +import com.alibaba.excel.support.cglib.beans.BeanMap; +import com.alibaba.excel.support.cglib.core.DefaultNamingPolicy; /** * bean utils diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/ClassUtils.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/ClassUtils.java index f9a53e08..3f3e14a0 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/util/ClassUtils.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/ClassUtils.java @@ -33,6 +33,7 @@ import com.alibaba.excel.metadata.property.ExcelContentProperty; import com.alibaba.excel.metadata.property.FontProperty; import com.alibaba.excel.metadata.property.NumberFormatProperty; import com.alibaba.excel.metadata.property.StyleProperty; +import com.alibaba.excel.support.cglib.beans.BeanMap; import com.alibaba.excel.write.metadata.holder.WriteHolder; import lombok.AllArgsConstructor; @@ -41,7 +42,6 @@ import lombok.EqualsAndHashCode; import lombok.Getter; import lombok.Setter; import org.apache.commons.collections4.CollectionUtils; -import org.springframework.cglib.beans.BeanMap; /** * Licensed to the Apache Software Foundation (ASF) under one or more diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/FieldUtils.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/FieldUtils.java index 42cc3e4a..2d5647ca 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/util/FieldUtils.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/FieldUtils.java @@ -5,8 +5,7 @@ import java.lang.reflect.Modifier; import java.util.Map; import com.alibaba.excel.metadata.NullObject; - -import org.springframework.cglib.beans.BeanMap; +import com.alibaba.excel.support.cglib.beans.BeanMap; /** * Licensed to the Apache Software Foundation (ASF) under one or more diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java b/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java index 2bdd713f..d1d82cc2 100644 --- a/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java +++ b/easyexcel-core/src/main/java/com/alibaba/excel/write/executor/ExcelWriteAddExecutor.java @@ -1,12 +1,10 @@ package com.alibaba.excel.write.executor; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.Collection; import java.util.HashSet; import java.util.Map; import java.util.Set; -import java.util.TreeMap; import com.alibaba.excel.context.WriteContext; import com.alibaba.excel.enums.HeadKindEnum; @@ -14,6 +12,7 @@ import com.alibaba.excel.metadata.FieldCache; import com.alibaba.excel.metadata.FieldWrapper; import com.alibaba.excel.metadata.Head; import com.alibaba.excel.metadata.property.ExcelContentProperty; +import com.alibaba.excel.support.cglib.beans.BeanMap; import com.alibaba.excel.util.BeanMapUtils; import com.alibaba.excel.util.ClassUtils; import com.alibaba.excel.util.FieldUtils; @@ -30,7 +29,6 @@ import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; -import org.springframework.cglib.beans.BeanMap; /** * Add the data into excel diff --git a/easyexcel-support/pom.xml b/easyexcel-support/pom.xml index 20e7c937..85e5a533 100644 --- a/easyexcel-support/pom.xml +++ b/easyexcel-support/pom.xml @@ -21,7 +21,7 @@ org.springframework spring-core - 5.3.27 + 5.3.37 org.springframework diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index be59278c..cd1bdb91 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -29,17 +29,17 @@ com.alibaba.fastjson2 fastjson2 - 2.0.29 + 2.0.51 org.springframework.boot spring-boot-starter-web - 2.7.11 + 2.7.18 org.springframework.boot spring-boot-starter-test - 2.7.11 + 2.7.18 @@ -61,7 +61,7 @@ ch.qos.logback logback-classic - 1.2.12 + 1.5.6 diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Xls03Test.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Xls03Test.java index 7d5a4490..a43525ae 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Xls03Test.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/Xls03Test.java @@ -3,14 +3,14 @@ package com.alibaba.easyexcel.test.temp; import java.util.List; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.cglib.beans.BeanMap; +import com.alibaba.excel.support.cglib.core.DebuggingClassWriter; import com.alibaba.excel.util.BeanMapUtils; import com.alibaba.fastjson2.JSON; import org.junit.jupiter.api.Test; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import org.springframework.cglib.beans.BeanMap; -import org.springframework.cglib.core.DebuggingClassWriter; /** * 临时测试 diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/write/TempWriteTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/write/TempWriteTest.java index 8c75deab..9f66a507 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/write/TempWriteTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/write/TempWriteTest.java @@ -8,6 +8,7 @@ import java.util.Map; import com.alibaba.easyexcel.test.demo.read.CustomStringStringConverter; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; +import com.alibaba.excel.support.cglib.beans.BeanMap; import com.alibaba.excel.util.BeanMapUtils; import com.alibaba.excel.util.FileUtils; import com.alibaba.excel.util.ListUtils; @@ -24,7 +25,6 @@ import org.apache.poi.xssf.streaming.SXSSFSheet; import org.apache.poi.xssf.streaming.SXSSFWorkbook; import org.apache.poi.xssf.usermodel.XSSFWorkbook; import org.junit.jupiter.api.Test; -import org.springframework.cglib.beans.BeanMap; @Slf4j public class TempWriteTest { diff --git a/pom.xml b/pom.xml index 2d38e69c..24f54ddc 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ - 4.0.0-beta1 + 4.0.0 UTF-8 1.8 true @@ -90,40 +90,45 @@ com.alibaba easyexcel-support - ${revision} + 3.3.4 org.apache.poi poi - 5.2.3 + 5.2.5 org.apache.poi poi-ooxml - 5.2.3 + 5.2.5 org.apache.commons commons-csv - 1.10.0 + 1.11.0 org.ehcache ehcache - 3.9.9 + 3.10.8 commons-io commons-io 2.11.0 + + org.slf4j + slf4j-api + 1.7.36 + org.projectlombok lombok - 1.18.26 + 1.18.32 @@ -313,31 +318,6 @@ - - org.apache.maven.plugins - maven-shade-plugin - - - package - - shade - - - - - ${project.groupId}:${project.artifactId} - - - - - org.springframework - com.alibaba.excel.support - - - - - - org.codehaus.mojo diff --git a/update.md b/update.md index 49416303..74ca52ed 100644 --- a/update.md +++ b/update.md @@ -1,7 +1,7 @@ -# 4.0.0-beta1 +# 4.0.0 -* `poi`由`4.1.2`升级到`5.2.3` -* `commons-csv`由`1.9.0`升级到`1.10.0` +* `poi`由`4.1.2`升级到`5.2.5` +* `commons-csv`由`1.1.0`升级到`1.10.0` * `slf4j-api`由`1.7.32`升级到`1.7.36` * `ehcache`由`3.9.9`升级到`3.10.8` From c68bf685c1289c985e0be004879ab56d7a8cc055 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Mon, 17 Jun 2024 19:57:03 +0800 Subject: [PATCH 08/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- update.md | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/pom.xml b/pom.xml index 24f54ddc..0a3da974 100644 --- a/pom.xml +++ b/pom.xml @@ -111,7 +111,7 @@ org.ehcache ehcache - 3.10.8 + 3.9.11 commons-io diff --git a/update.md b/update.md index 74ca52ed..b0fc5642 100644 --- a/update.md +++ b/update.md @@ -3,7 +3,8 @@ * `poi`由`4.1.2`升级到`5.2.5` * `commons-csv`由`1.1.0`升级到`1.10.0` * `slf4j-api`由`1.7.32`升级到`1.7.36` -* `ehcache`由`3.9.9`升级到`3.10.8` +* `ehcache`由`3.9.9`升级到`3.9.11` +* 支持`jdk21` # 3.3.4 From c0687903591df1fe02d6714deae2e6e1c74414b7 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Mon, 17 Jun 2024 20:02:43 +0800 Subject: [PATCH 09/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E6=96=B0=E7=89=88?= =?UTF-8?q?=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index cc5c9352..baa22739 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析 com.alibaba easyexcel - 3.3.4 + 4.0.0 ``` From 5f0a8897df23b71222689592e3b88478f5d96a93 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 09:41:51 +0800 Subject: [PATCH 10/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 3051a057..d6bba390 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -37,7 +37,7 @@ jobs: server-username: MAVEN_USERNAME server-password: MAVEN_PASSWORD - name: Cache local Maven repository - uses: actions/cache@v3 + uses: actions/cache@main with: path: ~/.m2/repository key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} From a891c715008faa043d6044aa5686295e04be88dc Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 14:58:00 +0800 Subject: [PATCH 11/22] =?UTF-8?q?=E7=A7=BB=E9=99=A4common-io?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- easyexcel-core/pom.xml | 4 ---- easyexcel-support/pom.xml | 12 +++++++++--- pom.xml | 9 ++------- 4 files changed, 12 insertions(+), 15 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index e4270c20..95a3cd0b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,7 +37,7 @@ jobs: java-version: ${{ matrix.java }} distribution: ${{ matrix.distribution }} - name: Cache local Maven repository - uses: actions/cache@v3 + uses: actions/cache@main with: path: ~/.m2/repository key: ${{ runner.os }}-m2-${{ hashFiles('**/pom.xml') }} diff --git a/easyexcel-core/pom.xml b/easyexcel-core/pom.xml index f8179003..93d013cc 100644 --- a/easyexcel-core/pom.xml +++ b/easyexcel-core/pom.xml @@ -36,9 +36,5 @@ org.ehcache ehcache - - commons-io - commons-io - diff --git a/easyexcel-support/pom.xml b/easyexcel-support/pom.xml index 85e5a533..f07d0446 100644 --- a/easyexcel-support/pom.xml +++ b/easyexcel-support/pom.xml @@ -24,8 +24,8 @@ 5.3.37 - org.springframework - spring-jcl + * + * @@ -49,7 +49,7 @@ true true - + org.springframework:spring-core @@ -63,6 +63,12 @@ + + + org.springframework + com.alibaba.excel.support + + diff --git a/pom.xml b/pom.xml index 0a3da974..6ff3d13d 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ - 4.0.0 + 4.0.1 UTF-8 1.8 true @@ -113,11 +113,6 @@ ehcache 3.9.11 - - commons-io - commons-io - 2.11.0 - org.slf4j slf4j-api @@ -195,7 +190,7 @@ org.apache.maven.plugins maven-shade-plugin - 3.2.4 + 3.6.0 org.codehaus.mojo From 1e144e16fe28a6ed5f1cc6a32e2e4a6de057bd51 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 15:19:56 +0800 Subject: [PATCH 12/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E5=A4=B1=E8=B4=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- update.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 6ff3d13d..bf0dd4b0 100644 --- a/pom.xml +++ b/pom.xml @@ -185,7 +185,7 @@ org.apache.maven.plugins maven-surefire-plugin - 2.22.2 + 3.3.0 org.apache.maven.plugins diff --git a/update.md b/update.md index b0fc5642..d1bbb240 100644 --- a/update.md +++ b/update.md @@ -1,3 +1,7 @@ +# 4.0.1 + +* `commons-io` 修改为依赖 `poi`的版本 + # 4.0.0 * `poi`由`4.1.2`升级到`5.2.5` From 58b84830cd78162cc5bcb9e0646852ff8d6e6e6d Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 16:37:40 +0800 Subject: [PATCH 13/22] =?UTF-8?q?*=20=E4=BF=AE=E5=A4=8D=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=A2=AB=E6=B8=85=E7=90=86=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E6=8F=90=E7=A4=BA`NoSuchFileException`=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../EasyExcelTempFileCreationStrategy.java | 136 ++++++++++++++++++ .../com/alibaba/excel/util/FileUtils.java | 13 +- .../easyexcel/test/temp/WriteV33Test.java | 10 ++ .../test/temp/large/TempLargeDataTest.java | 3 +- update.md | 1 + 5 files changed, 152 insertions(+), 11 deletions(-) create mode 100644 easyexcel-core/src/main/java/com/alibaba/excel/util/EasyExcelTempFileCreationStrategy.java diff --git a/easyexcel-core/src/main/java/com/alibaba/excel/util/EasyExcelTempFileCreationStrategy.java b/easyexcel-core/src/main/java/com/alibaba/excel/util/EasyExcelTempFileCreationStrategy.java new file mode 100644 index 00000000..ce4db733 --- /dev/null +++ b/easyexcel-core/src/main/java/com/alibaba/excel/util/EasyExcelTempFileCreationStrategy.java @@ -0,0 +1,136 @@ +/* ==================================================================== + Licensed to the Apache Software Foundation (ASF) under one or more + contributor license agreements. See the NOTICE file distributed with + this work for additional information regarding copyright ownership. + The ASF licenses this file to You under the Apache License, Version 2.0 + (the "License"); you may not use this file except in compliance with + the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. +==================================================================== */ + +package com.alibaba.excel.util; + +import java.io.File; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; +import java.nio.file.attribute.FileAttribute; +import java.util.concurrent.locks.Lock; +import java.util.concurrent.locks.ReentrantLock; + +import org.apache.poi.util.DefaultTempFileCreationStrategy; +import org.apache.poi.util.TempFileCreationStrategy; + +import static org.apache.poi.util.TempFile.JAVA_IO_TMPDIR; + +/** + * In the scenario where `poifiles` are cleaned up, the {@link DefaultTempFileCreationStrategy} will throw a + * java.nio.file.NoSuchFileException. Therefore, it is necessary to verify the existence of the temporary file every + * time it is created. + * + * @author Jiaju Zhuang + */ +public class EasyExcelTempFileCreationStrategy implements TempFileCreationStrategy { + /** + * Name of POI files directory in temporary directory. + */ + public static final String POIFILES = "poifiles"; + + /** + * To use files.deleteOnExit after clean JVM exit, set the -Dpoi.delete.tmp.files.on.exit JVM property + */ + public static final String DELETE_FILES_ON_EXIT = "poi.delete.tmp.files.on.exit"; + + /** + * The directory where the temporary files will be created (null to use the default directory). + */ + private volatile File dir; + + /** + * The lock to make dir initialized only once. + */ + private final Lock dirLock = new ReentrantLock(); + + /** + * Creates the strategy so that it creates the temporary files in the default directory. + * + * @see File#createTempFile(String, String) + */ + public EasyExcelTempFileCreationStrategy() { + this(null); + } + + /** + * Creates the strategy allowing to set the + * + * @param dir The directory where the temporary files will be created (null to use the default + * directory). + * @see Files#createTempFile(Path, String, String, FileAttribute[]) + */ + public EasyExcelTempFileCreationStrategy(File dir) { + this.dir = dir; + } + + private void createPOIFilesDirectory() throws IOException { + // Create our temp dir only once by double-checked locking + // The directory is not deleted, even if it was created by this TempFileCreationStrategy + if (dir == null || !dir.exists()) { + dirLock.lock(); + try { + if (dir == null || !dir.exists()) { + String tmpDir = System.getProperty(JAVA_IO_TMPDIR); + if (tmpDir == null) { + throw new IOException("System's temporary directory not defined - set the -D" + JAVA_IO_TMPDIR + + " jvm property!"); + } + Path dirPath = Paths.get(tmpDir, POIFILES); + dir = Files.createDirectories(dirPath).toFile(); + } + } finally { + dirLock.unlock(); + } + return; + } + } + + @Override + public File createTempFile(String prefix, String suffix) throws IOException { + // Identify and create our temp dir, if needed + createPOIFilesDirectory(); + + // Generate a unique new filename + File newFile = Files.createTempFile(dir.toPath(), prefix, suffix).toFile(); + + // Set the delete on exit flag, but only when explicitly disabled + if (System.getProperty(DELETE_FILES_ON_EXIT) != null) { + newFile.deleteOnExit(); + } + + // All done + return newFile; + } + + /* (non-JavaDoc) Created directory path is /poifiles/prefix0123456789 */ + @Override + public File createTempDirectory(String prefix) throws IOException { + // Identify and create our temp dir, if needed + createPOIFilesDirectory(); + + // Generate a unique new filename + File newDirectory = Files.createTempDirectory(dir.toPath(), prefix).toFile(); + + //this method appears to be only used in tests, so it is probably ok to use deleteOnExit + newDirectory.deleteOnExit(); + + // All done + return newDirectory; + } +} 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 d800be51..f514f6f7 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 @@ -12,7 +12,6 @@ import java.util.UUID; import com.alibaba.excel.exception.ExcelAnalysisException; import com.alibaba.excel.exception.ExcelCommonException; -import org.apache.poi.util.DefaultTempFileCreationStrategy; import org.apache.poi.util.TempFile; /** @@ -111,7 +110,7 @@ public class FileUtils { /** * Write inputStream to file * - * @param file file + * @param file file * @param inputStream inputStream */ public static void writeToFile(File file, InputStream inputStream) { @@ -121,8 +120,8 @@ public class FileUtils { /** * Write inputStream to file * - * @param file file - * @param inputStream inputStream + * @param file file + * @param inputStream inputStream * @param closeInputStream closeInputStream */ public static void writeToFile(File file, InputStream inputStream, boolean closeInputStream) { @@ -154,11 +153,8 @@ public class FileUtils { } } - public static void createPoiFilesDirectory() { - File poiFilesPathFile = new File(poiFilesPath); - createDirectory(poiFilesPathFile); - TempFile.setTempFileCreationStrategy(new DefaultTempFileCreationStrategy(poiFilesPathFile)); + TempFile.setTempFileCreationStrategy(new EasyExcelTempFileCreationStrategy()); } public static File createCacheTmpFile() { @@ -171,7 +167,6 @@ public class FileUtils { } /** - * * @param directory */ public static File createDirectory(File directory) { diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteV33Test.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteV33Test.java index ed5b2385..5e83405d 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteV33Test.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/WriteV33Test.java @@ -1,5 +1,8 @@ package com.alibaba.easyexcel.test.temp; +import java.io.File; +import java.nio.file.Files; +import java.nio.file.Path; import java.util.ArrayList; import java.util.Date; import java.util.List; @@ -135,4 +138,11 @@ public class WriteV33Test { return list; } + + @Test + public void test4() throws Exception{ + Path path= Files.createTempFile(new File("/Users/zhuangjiaju/test/test0422/test/xx").toPath(),System.currentTimeMillis()+"",".jpg"); + System.out.println(path); + } + } diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/large/TempLargeDataTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/large/TempLargeDataTest.java index b88bf06e..246656c1 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/large/TempLargeDataTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/temp/large/TempLargeDataTest.java @@ -8,7 +8,6 @@ import java.util.ArrayList; import java.util.List; import java.util.stream.IntStream; -import com.alibaba.easyexcel.test.core.large.LargeDataTest; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; @@ -31,7 +30,7 @@ import org.slf4j.LoggerFactory; public class TempLargeDataTest { - private static final Logger LOGGER = LoggerFactory.getLogger(LargeDataTest.class); + private static final Logger LOGGER = LoggerFactory.getLogger(TempLargeDataTest.class); private int i = 0; private static File fileFill07; diff --git a/update.md b/update.md index d1bbb240..6b141fff 100644 --- a/update.md +++ b/update.md @@ -1,6 +1,7 @@ # 4.0.1 * `commons-io` 修改为依赖 `poi`的版本 +* 修复临时目录被清理可能提示`NoSuchFileException`的异常 # 4.0.0 From 1cfad855611dbcbcc1bf8a4ed5ed6c4e34159eef Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 16:42:52 +0800 Subject: [PATCH 14/22] =?UTF-8?q?*=20=E4=BF=AE=E5=A4=8D=E4=B8=B4=E6=97=B6?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E8=A2=AB=E6=B8=85=E7=90=86=E5=8F=AF=E8=83=BD?= =?UTF-8?q?=E6=8F=90=E7=A4=BA`NoSuchFileException`=E7=9A=84=E5=BC=82?= =?UTF-8?q?=E5=B8=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pom.xml b/pom.xml index bf0dd4b0..44dd0796 100644 --- a/pom.xml +++ b/pom.xml @@ -230,11 +230,13 @@ com/alibaba/excel/metadata/DataFormatter.java com/alibaba/excel/util/DateUtils.java com/alibaba/excel/util/MapUtils.java + com/alibaba/excel/util/EasyExcelTempFileCreationStrategy.java com/alibaba/excel/metadata/format/DataFormatter.java com/alibaba/excel/metadata/format/ExcelGeneralNumberFormat.java com/alibaba/excel/metadata/csv/CsvDataFormat.java com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java com/alibaba/excel/analysis/v07/handlers/sax/SharedStringsTableHandler.java + com/alibaba/excel/write/executor/ExcelWriteFillExecutor.java From 99e527e9b4e3560fa06669a1e541233243bd5eef Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 17:05:00 +0800 Subject: [PATCH 15/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=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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 Date: Tue, 18 Jun 2024 17:09:52 +0800 Subject: [PATCH 16/22] =?UTF-8?q?=E5=9B=9E=E5=A4=8D=E6=B5=8B=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/com/alibaba/excel/util/FileUtils.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 7a09de9a..f514f6f7 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() { From e8a86c6dbe98a1ab5c46e72a640aee791ad9bce7 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 17:10:58 +0800 Subject: [PATCH 17/22] =?UTF-8?q?=E5=8D=87=E7=BA=A7=E7=89=88=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index baa22739..789337c2 100644 --- a/README.md +++ b/README.md @@ -33,7 +33,7 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析 com.alibaba easyexcel - 4.0.0 + 4.0.1 ``` From 5844e5f84e156afaed72d123a1cb19b85ec36b11 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 17:37:34 +0800 Subject: [PATCH 18/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E6=B5=8B=E8=AF=95=E6=A1=88=E4=BE=8B=E6=97=B6`unnamed=20module`?= =?UTF-8?q?=20=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- easyexcel-test/pom.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index 8c540b22..0b8eb98e 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -71,6 +71,7 @@ org.apache.maven.plugins maven-surefire-plugin + --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED /com/alibaba/easyexcel/test/core/**/*.java From c52385f05b2ffa7acaf6846fa550c9b4935e9f09 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 17:51:57 +0800 Subject: [PATCH 19/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=97=A5=E6=9C=9F?= =?UTF-8?q?=E6=A0=BC=E5=BC=8F=E5=8C=96=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../test/core/dataformat/DateFormatTest.java | 8 +++++--- .../test/resources/dataformat/dataformat.xls | Bin 28672 -> 29184 bytes .../test/resources/dataformat/dataformat.xlsx | Bin 12615 -> 12655 bytes 3 files changed, 5 insertions(+), 3 deletions(-) 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 655239f8..1229b238 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 @@ -47,15 +47,17 @@ public class DateFormatTest { List list = EasyExcel.read(file, DateFormatData.class, null).locale(Locale.CHINA).sheet().doReadSync(); for (DateFormatData data : list) { - if (data.getDateStringCn() != null && !data.getDateStringCn().equals(data.getDate())) { - log.info("date:cn:{},{}", data.getDateStringCn(), data.getDate()); + if (!Objects.equals(data.getDateStringCn(), data.getDate()) && !Objects.equals(data.getDateStringCn2(), + data.getDate())) { + log.info("date:cn:{},{},{}", data.getDateStringCn(), data.getDateStringCn2(), data.getDate()); } if (data.getNumberStringCn() != null && !data.getNumberStringCn().equals(data.getNumber())) { log.info("number:cn{},{}", data.getNumberStringCn(), data.getNumber()); } } for (DateFormatData data : list) { - // The way dates are read in Chinese is different on Linux and Mac, so it is acceptable if it matches either one. + // 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( diff --git a/easyexcel-test/src/test/resources/dataformat/dataformat.xls b/easyexcel-test/src/test/resources/dataformat/dataformat.xls index ec0c39ba4bf089807e3ec96247e79d7c6aec10fb..95c306ce007778b92874296492c635f3afded0b0 100644 GIT binary patch delta 505 zcmY*VODsb{6g@M2?R%|OltvK2LTp5|eii=+LgFuxppno#)kb`RUB$By7BL_u%HdH`Ca0#)$SKyKI(G=)~EU@U2td9u=KP=1LN8ld5zIsF5*1z07`Ea5HT zHDLn-@>_u|!hJ$J2e#XQXTq?SOWS%x7WVD99bE%7{5LXv;56u6B9KDm&f5VrgpmkKc5y$dX6x3m)ZntiCw)t!@Lfb_1WTHALWk| o@-uS8MAl3xOURFijmyRP5ZjA&YVU7Mzr15MaTu+ZM$E8(0hg0+q5uE@ delta 354 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 E00%qtp8x;= delta 3127 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 RJ^>4pMlmA> Date: Tue, 18 Jun 2024 18:33:53 +0800 Subject: [PATCH 20/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 4 ++++ easyexcel-test/pom.xml | 1 - 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 95a3cd0b..c95b8612 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -46,7 +46,11 @@ jobs: - name: Chmod run: chmod +x mvnw - name: Test with Maven + if: ${{ matrix.java == '8' }} run: ./mvnw test -B -Dmaven.test.skip=false + - name: Test with Maven + if: ${{ matrix.java != '8' }} + run: ./mvnw test -B -Dmaven.test.skip=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED - name: Maven Build run: ./mvnw install -B -V - name: Java Doc diff --git a/easyexcel-test/pom.xml b/easyexcel-test/pom.xml index 0b8eb98e..8c540b22 100644 --- a/easyexcel-test/pom.xml +++ b/easyexcel-test/pom.xml @@ -71,7 +71,6 @@ org.apache.maven.plugins maven-surefire-plugin - --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED /com/alibaba/easyexcel/test/core/**/*.java From a6e968233ca5aa203b902ad67c06038887dccab1 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 18:51:19 +0800 Subject: [PATCH 21/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index c95b8612..1f518b8b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: run: ./mvnw test -B -Dmaven.test.skip=false - name: Test with Maven if: ${{ matrix.java != '8' }} - run: ./mvnw test -B -Dmaven.test.skip=false --add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED + run: ./mvnw test -B -Dmaven.test.skip=false -DargLine="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" - name: Maven Build run: ./mvnw install -B -V - name: Java Doc From 4e2496a12d11e38a47edfb6a0f7dbebe1ec401eb Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 18 Jun 2024 19:12:42 +0800 Subject: [PATCH 22/22] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E8=BF=90=E8=A1=8C?= =?UTF-8?q?=E8=84=9A=E6=9C=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 1f518b8b..f4e30b60 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,7 +50,7 @@ jobs: run: ./mvnw test -B -Dmaven.test.skip=false - name: Test with Maven if: ${{ matrix.java != '8' }} - run: ./mvnw test -B -Dmaven.test.skip=false -DargLine="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED" + run: ./mvnw test -B -Dmaven.test.skip=false -DargLine="--add-opens=java.base/java.lang=ALL-UNNAMED --add-opens=java.base/java.util=ALL-UNNAMED --add-opens=java.base/sun.reflect.annotation=ALL-UNNAMED" - name: Maven Build run: ./mvnw install -B -V - name: Java Doc