From bce94fdfdffdf64e3755ca34ada17cd317ac0a23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=97=E6=B3=BD=E6=A5=A0?= Date: Sun, 18 Jan 2026 14:32:11 +0800 Subject: [PATCH 1/2] fix: fix error in using relativeHeadRowIndex for writing tables only(#794) --- .../sheet/write/executor/ExcelWriteAddExecutor.java | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java index 5715c88c1..13d2cdff0 100644 --- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java +++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java @@ -42,6 +42,7 @@ import org.apache.fesod.sheet.write.metadata.CollectionRowData; import org.apache.fesod.sheet.write.metadata.MapRowData; import org.apache.fesod.sheet.write.metadata.RowData; +import org.apache.fesod.sheet.write.metadata.holder.AbstractWriteHolder; import org.apache.fesod.sheet.write.metadata.holder.WriteHolder; import org.apache.fesod.sheet.write.metadata.holder.WriteSheetHolder; import org.apache.poi.ss.usermodel.Cell; @@ -63,10 +64,15 @@ public void add(Collection data) { data = new ArrayList<>(); } WriteSheetHolder writeSheetHolder = writeContext.writeSheetHolder(); + WriteHolder currentWriteHolder = writeContext.currentWriteHolder(); int newRowIndex = writeSheetHolder.getNewRowIndexAndStartDoWrite(); - if (writeSheetHolder.isNew() - && !writeSheetHolder.getExcelWriteHeadProperty().hasHead()) { - newRowIndex += writeContext.currentWriteHolder().relativeHeadRowIndex(); + if (currentWriteHolder.isNew()) { + if(currentWriteHolder instanceof AbstractWriteHolder){ + AbstractWriteHolder writeHolder = (AbstractWriteHolder) currentWriteHolder; + if(!writeHolder.getExcelWriteHeadProperty().hasHead()){ + newRowIndex += currentWriteHolder.relativeHeadRowIndex(); + } + } } int relativeRowIndex = 0; for (Object oneRowData : data) { From d4c9711f603f9f887d98383c888bbe3cb27fe46e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8B=97=E6=B3=BD=E6=A5=A0?= Date: Sun, 18 Jan 2026 15:02:42 +0800 Subject: [PATCH 2/2] fix: fix error in using relativeHeadRowIndex for writing tables only(#794) Modify code format --- .../fesod/sheet/write/executor/ExcelWriteAddExecutor.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java index 13d2cdff0..8b1481eda 100644 --- a/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java +++ b/fesod-sheet/src/main/java/org/apache/fesod/sheet/write/executor/ExcelWriteAddExecutor.java @@ -67,9 +67,9 @@ public void add(Collection data) { WriteHolder currentWriteHolder = writeContext.currentWriteHolder(); int newRowIndex = writeSheetHolder.getNewRowIndexAndStartDoWrite(); if (currentWriteHolder.isNew()) { - if(currentWriteHolder instanceof AbstractWriteHolder){ + if (currentWriteHolder instanceof AbstractWriteHolder) { AbstractWriteHolder writeHolder = (AbstractWriteHolder) currentWriteHolder; - if(!writeHolder.getExcelWriteHeadProperty().hasHead()){ + if (!writeHolder.getExcelWriteHeadProperty().hasHead()) { newRowIndex += currentWriteHolder.relativeHeadRowIndex(); } }