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