From a16b181c4ed56ce0672168194afd6b3bc0303caf Mon Sep 17 00:00:00 2001 From: gongxuanzhang Date: Tue, 16 May 2023 22:19:21 +0800 Subject: [PATCH 1/7] fix class cast error --- .../com/alibaba/excel/util/ClassUtils.java | 33 +++++++------------ 1 file changed, 12 insertions(+), 21 deletions(-) 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 d2ac7135..1447a078 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 @@ -1,20 +1,5 @@ package com.alibaba.excel.util; -import java.lang.reflect.Field; -import java.lang.reflect.Modifier; -import java.util.ArrayList; -import java.util.Collection; -import java.util.Collections; -import java.util.HashMap; -import java.util.HashSet; -import java.util.LinkedHashSet; -import java.util.List; -import java.util.Map; -import java.util.Optional; -import java.util.Set; -import java.util.TreeMap; -import java.util.concurrent.ConcurrentHashMap; - import com.alibaba.excel.annotation.ExcelIgnore; import com.alibaba.excel.annotation.ExcelIgnoreUnannotated; import com.alibaba.excel.annotation.ExcelProperty; @@ -34,7 +19,6 @@ 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.write.metadata.holder.WriteHolder; - import lombok.AllArgsConstructor; import lombok.Data; import lombok.EqualsAndHashCode; @@ -43,6 +27,11 @@ import lombok.Setter; import org.apache.commons.collections4.CollectionUtils; import org.springframework.cglib.beans.BeanMap; +import java.lang.reflect.Field; +import java.lang.reflect.Modifier; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; + /** * Licensed to the Apache Software Foundation (ASF) under one or more * contributor license agreements. See the NOTICE file distributed with @@ -564,11 +553,13 @@ public class ClassUtils { FieldCacheKey(Class clazz, ConfigurationHolder configurationHolder) { this.clazz = clazz; - WriteHolder writeHolder = (WriteHolder)configurationHolder; - this.excludeColumnFieldNames = writeHolder.excludeColumnFieldNames(); - this.excludeColumnIndexes = writeHolder.excludeColumnIndexes(); - this.includeColumnFieldNames = writeHolder.includeColumnFieldNames(); - this.includeColumnIndexes = writeHolder.includeColumnIndexes(); + if (configurationHolder instanceof WriteHolder) { + WriteHolder writeHolder = (WriteHolder) configurationHolder; + this.excludeColumnFieldNames = writeHolder.excludeColumnFieldNames(); + this.excludeColumnIndexes = writeHolder.excludeColumnIndexes(); + this.includeColumnFieldNames = writeHolder.includeColumnFieldNames(); + this.includeColumnIndexes = writeHolder.includeColumnIndexes(); + } } } From 90dd2f4e3d8de59f841062c51cf97508996d6f0e Mon Sep 17 00:00:00 2001 From: gongxuanzhang Date: Fri, 19 May 2023 15:04:19 +0800 Subject: [PATCH 2/7] update write test import package --- .../java/com/alibaba/easyexcel/test/demo/write/WriteTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java index d224c1d6..990f2630 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java @@ -11,7 +11,6 @@ import java.util.List; import java.util.Set; import com.alibaba.easyexcel.test.core.head.ComplexHeadData; -import com.alibaba.easyexcel.test.demo.read.ConverterData; import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.ExcelWriter; From 2ac224c70f6a2471ed1e9796a42b1d0d8d897a71 Mon Sep 17 00:00:00 2001 From: gongxuanzhang Date: Thu, 25 May 2023 09:21:20 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E5=8A=A0=E7=BE=A4=E4=BF=A1=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 90b10c07..fbee1f4c 100644 --- a/README.md +++ b/README.md @@ -105,7 +105,8 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析 [钉钉7群(已满): 35235427](https://h5.dingtalk.com/circle/healthCheckin.html?dtaction=os&corpId=ding532b9018c06c7fc8660273c4b78e6440&167fb=ed003&cbdbhh=qwertyuiop) [钉钉8群(已满): 44752220](https://h5.dingtalk.com/circle/healthCheckin.html?dtaction=os&corpId=dingea96808beee421693fd4ba7542d6e5da&0380092a-fa46=a6a40905-7951&cbdbhh=qwertyuiop) [钉钉9群(已满): 11045002277](https://h5.dingtalk.com/circle/healthCheckin.html?dtaction=os&corpId=dinge338d2215891c0459c13cd6b2cb108a6&6972d=b92f9&cbdbhh=qwertyuiop) -[钉钉10群: 27360019755](https://qr.dingtalk.com/action/joingroup?code=v1,k1,v25LHn2liWmrWUKlkhIzOTcK7s7onp/sZP8mO5oIYSs=&_dt_no_comment=1&origin=11) +[钉钉10群(已满): 27360019755](https://qr.dingtalk.com/action/joingroup?code=v1,k1,v25LHn2liWmrWUKlkhIzOTcK7s7onp/sZP8mO5oIYSs=&_dt_no_comment=1&origin=11) +[钉钉11群:24330026964](https://qr.dingtalk.com/action/joingroup?code=v1,k1,63PjvTncu81oQ3X6XmGEJqnwQHCQxi/jaVlbUStq79o=&_dt_no_comment=1&origin=11) # 维护者 From bf2c31cd7c65fdc562e4623740dec4dc117a794f Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 30 May 2023 14:33:46 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ExcludeOrIncludeDataTest.java | 43 ++++++++----------- .../easyexcel/test/demo/write/WriteTest.java | 13 ------ 2 files changed, 18 insertions(+), 38 deletions(-) diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/excludeorinclude/ExcludeOrIncludeDataTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/excludeorinclude/ExcludeOrIncludeDataTest.java index 31244e15..314b5de4 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/excludeorinclude/ExcludeOrIncludeDataTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/core/excludeorinclude/ExcludeOrIncludeDataTest.java @@ -1,20 +1,11 @@ package com.alibaba.easyexcel.test.core.excludeorinclude; -import java.io.File; -import java.util.ArrayList; -import java.util.HashSet; -import java.util.List; -import java.util.Map; -import java.util.Set; - import com.alibaba.easyexcel.test.util.TestFileUtil; import com.alibaba.excel.EasyExcel; +import org.junit.jupiter.api.*; -import org.junit.jupiter.api.Assertions; -import org.junit.jupiter.api.BeforeAll; -import org.junit.jupiter.api.MethodOrderer; -import org.junit.jupiter.api.Test; -import org.junit.jupiter.api.TestMethodOrder; +import java.io.File; +import java.util.*; /** * @author Jiaju Zhuang @@ -159,7 +150,7 @@ public class ExcludeOrIncludeDataTest { excludeColumnIndexes.add(0); excludeColumnIndexes.add(3); EasyExcel.write(file, ExcludeOrIncludeData.class).excludeColumnIndexes(excludeColumnIndexes).sheet() - .doWrite(data()); + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); @@ -175,7 +166,7 @@ public class ExcludeOrIncludeDataTest { excludeColumnFieldNames.add("column3"); excludeColumnFieldNames.add("column4"); EasyExcel.write(file, ExcludeOrIncludeData.class).excludeColumnFieldNames(excludeColumnFieldNames).sheet() - .doWrite(data()); + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); @@ -189,7 +180,7 @@ public class ExcludeOrIncludeDataTest { includeColumnIndexes.add(1); includeColumnIndexes.add(2); EasyExcel.write(file, ExcludeOrIncludeData.class).includeColumnIndexes(includeColumnIndexes).sheet() - .doWrite(data()); + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); @@ -203,8 +194,10 @@ public class ExcludeOrIncludeDataTest { Set includeColumnFieldNames = new HashSet(); includeColumnFieldNames.add("column2"); includeColumnFieldNames.add("column3"); - EasyExcel.write(file, ExcludeOrIncludeData.class).includeColumnFieldNames(includeColumnFieldNames).sheet() - .doWrite(data()); + EasyExcel.write(file, ExcludeOrIncludeData.class) + .sheet() + .includeColumnFieldNames(includeColumnFieldNames) + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); @@ -220,10 +213,10 @@ public class ExcludeOrIncludeDataTest { includeColumnIndexes.add(2); includeColumnIndexes.add(0); EasyExcel.write(file, ExcludeOrIncludeData.class) - .includeColumnIndexes(includeColumnIndexes) - .orderByIncludeColumn(true). - sheet() - .doWrite(data()); + .includeColumnIndexes(includeColumnIndexes) + .orderByIncludeColumn(true). + sheet() + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); @@ -240,10 +233,10 @@ public class ExcludeOrIncludeDataTest { includeColumnFieldNames.add("column2"); includeColumnFieldNames.add("column3"); EasyExcel.write(file, ExcludeOrIncludeData.class) - .includeColumnFieldNames(includeColumnFieldNames) - .orderByIncludeColumn(true). - sheet() - .doWrite(data()); + .includeColumnFieldNames(includeColumnFieldNames) + .orderByIncludeColumn(true). + sheet() + .doWrite(data()); List> dataMap = EasyExcel.read(file).sheet().doReadSync(); Assertions.assertEquals(1, dataMap.size()); Map record = dataMap.get(0); diff --git a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java index 990f2630..0e7cf2db 100644 --- a/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java +++ b/easyexcel-test/src/test/java/com/alibaba/easyexcel/test/demo/write/WriteTest.java @@ -705,19 +705,6 @@ public class WriteTest { EasyExcel.write(fileName).head(head()).sheet("模板").doWrite(dataList()); } - @Test - public void sheetCol(){ - String fileName = TestFileUtil.getPath() + "customCol" + System.currentTimeMillis() + ".xlsx"; - try (ExcelWriter excelWriter = EasyExcel.write(fileName, DemoData.class).includeColumnFieldNames(Arrays.asList("string","date","doubleData")).build()) { - // 把sheet设置为不需要头 不然会输出sheet的头 这样看起来第一个table 就有2个头了 - WriteSheet writeSheet = EasyExcel.writerSheet("模板").includeColumnFieldNames(Arrays.asList("string","date")).build(); - excelWriter.write(data(), writeSheet); - writeSheet = EasyExcel.writerSheet(1,"模板1").needHead(false).build(); - // 第二次写如也会创建头,然后在第一次的后面写入数据 - WriteTable string = EasyExcel.writerTable().needHead(true).includeColumnFieldNames(Arrays.asList("string")).build(); - excelWriter.write(data(),writeSheet,string); - } - } private List dataLong() { List list = ListUtils.newArrayList(); for (int i = 0; i < 10; i++) { From 63cda6ce9fa8f72398b52581b8f3960fe6e7912c Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 30 May 2023 14:34:44 +0800 Subject: [PATCH 5/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A1=88=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 2 +- update.md | 4 ++++ 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index fbee1f4c..b53f44a6 100644 --- a/README.md +++ b/README.md @@ -31,7 +31,7 @@ easyexcel重写了poi对07版Excel的解析,一个3M的excel用POI sax解析 com.alibaba easyexcel - 3.3.1 + 3.3.2 ``` diff --git a/update.md b/update.md index 3b0b4e95..3000935f 100644 --- a/update.md +++ b/update.md @@ -1,5 +1,9 @@ # 3.3.1 +* 修复`includeColumnIndexes`和`includeColumnFieldNames`在sheet后面失效的问题 + +# 3.3.1 + * 修改版本发布问题 # 3.3.0 From 573f55ba82b8e4f1e2d6a5c35e7ac17685adc4ca Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 30 May 2023 14:44:59 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=B5=8B=E8=AF=95?= =?UTF-8?q?=E6=A1=88=E4=BE=8B?= 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 3000935f..c448d238 100644 --- a/update.md +++ b/update.md @@ -1,4 +1,4 @@ -# 3.3.1 +# 3.3.2 * 修复`includeColumnIndexes`和`includeColumnFieldNames`在sheet后面失效的问题 From de4e5364d1eedec8616cb8d6c3f7927266ccd165 Mon Sep 17 00:00:00 2001 From: Jiaju Zhuang Date: Tue, 30 May 2023 14:57:03 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=88=E6=9C=AC?= =?UTF-8?q?=E5=8F=B7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index 926c91bd..9ed5cafb 100644 --- a/pom.xml +++ b/pom.xml @@ -20,7 +20,7 @@ - 3.3.1 + 3.3.2 UTF-8 1.8 true