diff --git a/src/spout/SpoutBuilder.php b/src/spout/SpoutBuilder.php index 976463a..8d6d7d5 100644 --- a/src/spout/SpoutBuilder.php +++ b/src/spout/SpoutBuilder.php @@ -195,6 +195,13 @@ class SpoutBuilder extends AbstractBuilder { protected int $rowStyle; + protected ?bool $differentOddEven = null; + + function setDifferentOddEven(bool $differentOddEven): self { + $this->differentOddEven = $differentOddEven; + return $this; + } + /** * @param string|int|null $sheetName */ @@ -303,10 +310,11 @@ class SpoutBuilder extends AbstractBuilder { function _write(array $row, ?array $colsStyle=null, ?array $rowStyle=null): void { $sheetParams = $this->sheetParams; - $defaultStyle = $sheetParams["default_style"] ?? null; $headerStyle = $sheetParams["header_style"] ?? null; $oddStyle = $sheetParams["odd_style"] ?? null; $evenStyle = $sheetParams["even_style"] ?? null; + $differentOddEven = $this->differentOddEven; + $differentOddEven ??= $sheetParams["different_odd_even"] ?? true; $cells = []; foreach ($row as $key => $col) { @@ -327,12 +335,10 @@ class SpoutBuilder extends AbstractBuilder { } if ($this->rowStyle === self::STYLE_HEADER) { $rowStyle ??= $headerStyle; - } elseif (($this->index + 1) % 2 == 0) { + } elseif ($differentOddEven && ($this->index + 1) % 2 == 0) { $rowStyle ??= $evenStyle; - } else { - $rowStyle ??= $oddStyle; } - $rowStyle ??= $defaultStyle; + $rowStyle ??= $oddStyle; self::ensure_style($rowStyle); $this->ss->addRow(WriterEntityFactory::createRow($cells, $rowStyle)); } diff --git a/src/spout/ref_params_ods.php b/src/spout/ref_params_ods.php index 4023f7f..d572683 100644 --- a/src/spout/ref_params_ods.php +++ b/src/spout/ref_params_ods.php @@ -17,8 +17,9 @@ class ref_params_ods extends ref_params { const SHEET = [ "->setName" => ["string"], - "default_style" => self::STYLE, "header_style" => self::STYLE, - "row_style" => self::STYLE, + "odd_style" => self::STYLE, + "even_style" => self::STYLE, + "different_odd_even" => "bool", ]; } diff --git a/src/spout/ref_params_xlsx.php b/src/spout/ref_params_xlsx.php index 0bb612a..d78cbec 100644 --- a/src/spout/ref_params_xlsx.php +++ b/src/spout/ref_params_xlsx.php @@ -50,10 +50,10 @@ class ref_params_xlsx extends ref_params { "->setColumnWidth" => ["int", "int"], "->setColumnWidthForRange" => ["int", "int", "int"], "view" => self::SHEET_VIEW, - "default_style" => self::STYLE, "header_style" => self::STYLE, "odd_style" => self::STYLE, "even_style" => self::STYLE, + "different_odd_even" => "bool", ]; const SHEET_VIEW = [