From c70acb60811bf776aed69c3173840756e99efae5 Mon Sep 17 00:00:00 2001 From: X-qinghai Date: Fri, 26 Sep 2025 14:45:55 +0800 Subject: [PATCH 1/2] =?UTF-8?q?docs:=20=E6=9B=B4=E6=96=B0=E5=90=88?= =?UTF-8?q?=E5=B9=B6=E5=8D=95=E5=85=83=E6=A0=BC=E4=B8=AD=E6=96=87=E6=96=87?= =?UTF-8?q?=E6=A1=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../current/write/extra.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/extra.md b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/extra.md index 2b453ef7a..42a27e862 100644 --- a/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/extra.md +++ b/website/i18n/zh-cn/docusaurus-plugin-content-docs/current/write/extra.md @@ -186,9 +186,13 @@ public class DemoMergeData { ```java public class CustomMergeStrategy extends AbstractMergeStrategy { @Override - protected void merge(Sheet sheet, WriteSheetHolder writeSheetHolder) { - // 自定义合并规则 - sheet.addMergedRegion(new CellRangeAddress(1, 2, 0, 1)); // 示例合并范围 + protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) { + // merge方法会为每个单元格都调用一次,确保相同单元格只执行一次合并 + if (relativeRowIndex != null && relativeRowIndex % 2 == 0 && head.getColumnIndex() == 0) { + int startRow = relativeRowIndex + 1; // 第0行是表头,数据从第1行开始 + int endRow = startRow + 1; // 合并当前行和下一行 + sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 0, 0)); + } } } ``` From a7ec8a05bd1dea162e7ba3632d80baa781ef32b1 Mon Sep 17 00:00:00 2001 From: X-qinghai Date: Fri, 26 Sep 2025 14:52:38 +0800 Subject: [PATCH 2/2] docs: Update merged cells English documentation --- website/docs/write/extra.md | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/website/docs/write/extra.md b/website/docs/write/extra.md index 330bebbf2..ead7baf9a 100644 --- a/website/docs/write/extra.md +++ b/website/docs/write/extra.md @@ -186,9 +186,13 @@ Custom merge strategy ```java public class CustomMergeStrategy extends AbstractMergeStrategy { @Override - protected void merge(Sheet sheet, WriteSheetHolder writeSheetHolder) { - // Custom merge rules - sheet.addMergedRegion(new CellRangeAddress(1, 2, 0, 1)); // Example merge range + protected void merge(Sheet sheet, Cell cell, Head head, Integer relativeRowIndex) { + // merge method will be called for each cell, ensuring that the same cell is merged only once + if (relativeRowIndex != null && relativeRowIndex % 2 == 0 && head.getColumnIndex() == 0) { + int startRow = relativeRowIndex + 1; // Row 0 is the header, data starts from row 1 + int endRow = startRow + 1; // Merge current row and next row + sheet.addMergedRegion(new CellRangeAddress(startRow, endRow, 0, 0)); + } } } ```