From 967319ff0b29b370f4345e748a5df7a63a66cea6 Mon Sep 17 00:00:00 2001 From: Jephte Clain Date: Fri, 24 Jan 2025 18:22:05 +0400 Subject: [PATCH] support merge_offset --- src/ext/spout/SpoutBuilder.php | 6 ++++-- src/ref/ext/spout/ref_builder.php | 1 + 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/ext/spout/SpoutBuilder.php b/src/ext/spout/SpoutBuilder.php index 61da982..bf8e6bb 100644 --- a/src/ext/spout/SpoutBuilder.php +++ b/src/ext/spout/SpoutBuilder.php @@ -415,14 +415,16 @@ class SpoutBuilder extends AbstractBuilder { self::apply_params($row, $rowParams, ref_builder::ROW_PARAMS); $mergeCells = $rowParams["merge_cells"] ?? null; + $mergeOffset = $rowParams["merge_offset"] ?? 0; if ($mergeCells !== null) { + $currentRow = $this->currentRow; foreach ($mergeCells as [$leftCol, $rightCol]) { - $this->mergeCells($leftCol, $this->currentRow, $rightCol, $this->currentRow); - + $this->mergeCells($leftCol + $mergeOffset, $currentRow, $rightCol + $mergeOffset, $currentRow); } } $this->ssWriter->addRow($row); + $this->currentRow++; if ($differentOddEven) $this->oddEvenIndex++; } diff --git a/src/ref/ext/spout/ref_builder.php b/src/ref/ext/spout/ref_builder.php index 21b1fbf..9bc7701 100644 --- a/src/ref/ext/spout/ref_builder.php +++ b/src/ref/ext/spout/ref_builder.php @@ -48,6 +48,7 @@ class ref_builder { const ROW_PARAMS = [ "->setHeight" => ["float"], "merge_cells" => "array", + "merge_offset" => "int", ]; const COLORS = [