From f51df249700188ed37f92e3937f3ad9603438fc2 Mon Sep 17 00:00:00 2001 From: Looly Date: Fri, 23 Sep 2022 12:52:05 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8DExcelWriter=E5=AF=BC=E5=87=BA?= =?UTF-8?q?List=E5=BC=95=E8=B5=B7=E7=9A=84=E4=B8=AA=E6=95=B0=E6=B7=B7?= =?UTF-8?q?=E4=B9=B1=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 1 + .../src/main/java/cn/hutool/poi/excel/ExcelWriter.java | 7 ++++--- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 568914bf1..b065ac8bb 100755 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -18,6 +18,7 @@ * 【core 】 修复PunyCode处理域名的问题(pr#2620@Github) * 【core 】 修复ObjectUtil.defaultIfNull去掉误加的deprecated(issue#I5SIZT@Gitee) * 【core 】 修复ReflectUtil 反射方法中桥接判断问题(issue#2625@Github) +* 【poi 】 修复ExcelWriter导出List引起的个数混乱问题(issue#2627@Github) ------------------------------------------------------------------------------------------------------------- diff --git a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java index 1681d01c2..0c74d63c0 100755 --- a/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java +++ b/hutool-poi/src/main/java/cn/hutool/poi/excel/ExcelWriter.java @@ -1005,9 +1005,6 @@ public class ExcelWriter extends ExcelBase { */ @SuppressWarnings({"rawtypes", "unchecked"}) public ExcelWriter writeRow(Object rowBean, boolean isWriteKeyAsHead) { - if (rowBean instanceof Iterable) { - return writeRow((Iterable) rowBean); - } Map rowMap; if (rowBean instanceof Map) { if (MapUtil.isNotEmpty(this.headerAlias)) { @@ -1015,6 +1012,10 @@ public class ExcelWriter extends ExcelBase { } else { rowMap = (Map) rowBean; } + }else if(rowBean instanceof Iterable){ + // issue#2398@Github + // MapWrapper由于实现了Iterable接口,应该优先按照Map处理 + return writeRow((Iterable) rowBean); } else if (rowBean instanceof Hyperlink) { // Hyperlink当成一个值 return writeRow(CollUtil.newArrayList(rowBean), isWriteKeyAsHead);