From 35a4be7243068476fb45cbe957579103d780af0c Mon Sep 17 00:00:00 2001 From: fluffycatkin <77832044+fluffycatkin@users.noreply.github.com> Date: Wed, 17 Aug 2022 20:07:09 +0800 Subject: [PATCH] Update ExcelWriteAddExecutor.java MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修改bug:同一sheet写入多个table,分别为table设置header并设置relativeHeadRowIndex属性后,第一个表头与内容之间也会出现偏移 https://github.com/alibaba/easyexcel/issues/2655 --- .../alibaba/excel/write/executor/ExcelWriteAddExecutor.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) 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 46ab5b63..6d2b2b4c 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 @@ -24,7 +24,7 @@ import com.alibaba.excel.write.metadata.MapRowData; import com.alibaba.excel.write.metadata.RowData; import com.alibaba.excel.write.metadata.holder.WriteHolder; import com.alibaba.excel.write.metadata.holder.WriteSheetHolder; - +import com.alibaba.excel.write.metadata.holder.WriteTableHolder; import org.apache.commons.collections4.CollectionUtils; import org.apache.poi.ss.usermodel.Cell; import org.apache.poi.ss.usermodel.Row; @@ -45,9 +45,10 @@ public class ExcelWriteAddExecutor extends AbstractExcelWriteExecutor { if (CollectionUtils.isEmpty(data)) { data = new ArrayList<>(); } + WriteTableHolder writeTableHolder = writeContext.writeTableHolder(); WriteSheetHolder writeSheetHolder = writeContext.writeSheetHolder(); int newRowIndex = writeSheetHolder.getNewRowIndexAndStartDoWrite(); - if (writeSheetHolder.isNew() && !writeSheetHolder.getExcelWriteHeadProperty().hasHead()) { + if (writeSheetHolder.isNew() && !writeSheetHolder.getExcelWriteHeadProperty().hasHead() && (writeTableHolder ==null || !writeTableHolder.needHead())) { newRowIndex += writeContext.currentWriteHolder().relativeHeadRowIndex(); } // BeanMap is out of order, so use sortedAllFieldMap