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);