diff --git a/src/Spout/Writer/Common/Helper/AbstractStyleHelper.php b/src/Spout/Writer/Common/Helper/AbstractStyleHelper.php index 77a6b93..372ef62 100644 --- a/src/Spout/Writer/Common/Helper/AbstractStyleHelper.php +++ b/src/Spout/Writer/Common/Helper/AbstractStyleHelper.php @@ -34,7 +34,7 @@ abstract class AbstractStyleHelper */ public function registerStyle($style) { - $return = []; + $styles = is_array($style) ? $style : [$style]; foreach ($styles as $style) { @@ -43,10 +43,15 @@ abstract class AbstractStyleHelper if (!$this->hasStyleAlreadyBeenRegistered($style)) { $nextStyleId = count($this->serializedStyleToStyleIdMappingTable); $style->setId($nextStyleId); + $this->serializedStyleToStyleIdMappingTable[$serializedStyle] = $nextStyleId; $this->styleIdToStyleMappingTable[$nextStyleId] = $style; } - $return[] = $this->getStyleFromSerializedStyle($serializedStyle); + } + + $return = []; + foreach ($this->serializedStyleToStyleIdMappingTable as $serializedStyle => $styleId) { + $return[$styleId] = $this->styleIdToStyleMappingTable[$styleId]; } return $return; diff --git a/tests/Spout/Writer/ODS/Helper/StyleHelperTest.php b/tests/Spout/Writer/ODS/Helper/StyleHelperTest.php index 1d0c7a5..46a73e7 100644 --- a/tests/Spout/Writer/ODS/Helper/StyleHelperTest.php +++ b/tests/Spout/Writer/ODS/Helper/StyleHelperTest.php @@ -35,7 +35,8 @@ class StyleHelperTest extends \PHPUnit_Framework_TestCase $this->assertNull($style2->getId()); $styleHelper = new StyleHelper($this->defaultStyle); - $registeredStyles = $styleHelper->registerStyle([$style1, $style2]); + $registeredStyles = $styleHelper->registerStyle($style1); + $registeredStyles = $styleHelper->registerStyle($style2); $this->assertEquals(1, $registeredStyles[0]->getId()); $this->assertEquals(2, $registeredStyles[1]->getId()); diff --git a/tests/Spout/Writer/XLSX/Helper/StyleHelperTest.php b/tests/Spout/Writer/XLSX/Helper/StyleHelperTest.php index 30d7031..cc59fbb 100644 --- a/tests/Spout/Writer/XLSX/Helper/StyleHelperTest.php +++ b/tests/Spout/Writer/XLSX/Helper/StyleHelperTest.php @@ -35,7 +35,8 @@ class StyleHelperTest extends \PHPUnit_Framework_TestCase $this->assertNull($style2->getId()); $styleHelper = new StyleHelper($this->defaultStyle); - $registeredStyles = $styleHelper->registerStyle([$style1, $style2]); + $registeredStyles = $styleHelper->registerStyle($style1); + $registeredStyles = $styleHelper->registerStyle($style2); $this->assertEquals(1, $registeredStyles[0]->getId()); $this->assertEquals(2, $registeredStyles[1]->getId()); @@ -52,8 +53,8 @@ class StyleHelperTest extends \PHPUnit_Framework_TestCase $registeredStyles = $styleHelper->registerStyle($style); $registeredStyles = $styleHelper->registerStyle($style); - $this->assertEquals(1, $registeredStyles[0]->getId()); - $this->assertEquals(1, $registeredStyles[0]->getId()); + $this->assertEquals(1, $registeredStyle1->getId()); + $this->assertEquals(1, $registeredStyle2->getId()); } /**