diff --git a/src/Spout/Writer/XLSX/Helper/StyleHelper.php b/src/Spout/Writer/XLSX/Helper/StyleHelper.php
index 2dd44fe..a917fd2 100644
--- a/src/Spout/Writer/XLSX/Helper/StyleHelper.php
+++ b/src/Spout/Writer/XLSX/Helper/StyleHelper.php
@@ -92,18 +92,17 @@ class StyleHelper extends AbstractStyleHelper
$styleId = $style->getId();
if ($style->shouldApplyBorder()) {
-
$border = $style->getBorder();
$serializedBorder = serialize($border);
- if (!isset($this->registeredBorders[$serializedBorder])) {
-
+ if (isset($this->registeredBorders[$serializedBorder])) {
+ $this->styleIdToBorderMappingTable[$styleId] = $this->registeredBorders[$serializedBorder];
+ } else {
$this->registeredBorders[$serializedBorder] = $styleId;
$this->styleIdToBorderMappingTable[$styleId] = count($this->registeredBorders);
-
}
- } else {
+ } else { // If no border should be applied - the mapping is the default border: 0
$this->styleIdToBorderMappingTable[$styleId] = 0;
}
}
@@ -189,7 +188,6 @@ EOD;
// The other fills are actually registered by setting a background color
foreach ($this->registeredFills as $styleId) {
-
/** @var Style $style */
$style = $this->styleIdToStyleMappingTable[$styleId];
@@ -222,7 +220,6 @@ EOD;
$content .= '';
foreach ($this->registeredBorders as $styleId) {
-
/** @var \Box\Spout\Writer\Style\Style $style */
$style = $this->styleIdToStyleMappingTable[$styleId];
$border = $style->getBorder();
@@ -232,7 +229,6 @@ EOD;
$sortOrder = ['left', 'right', 'top', 'bottom'];
foreach ($sortOrder as $partName) {
-
if ($border->hasPart($partName)) {
/** @var $part \Box\Spout\Writer\Style\BorderPart */
$part = $border->getPart($partName);
@@ -275,7 +271,6 @@ EOD;
$content = '';
foreach ($registeredStyles as $style) {
-
$styleId = $style->getId();
$fillId = $this->styleIdToFillMappingTable[$styleId];
$borderId = $this->styleIdToBorderMappingTable[$styleId];
diff --git a/tests/Spout/Writer/XLSX/WriterWithStyleTest.php b/tests/Spout/Writer/XLSX/WriterWithStyleTest.php
index dbf4090..cd209df 100644
--- a/tests/Spout/Writer/XLSX/WriterWithStyleTest.php
+++ b/tests/Spout/Writer/XLSX/WriterWithStyleTest.php
@@ -420,8 +420,8 @@ class WriterWithStyleTest extends \PHPUnit_Framework_TestCase
// Where a border is applied - the borderId attribute has to be greater than 0
$bordersApplied = 0;
/** @var \DOMElement $node */
- foreach($styleXfsElements->childNodes as $node) {
- if($node->getAttribute('applyBorder') == 1) {
+ foreach ($styleXfsElements->childNodes as $node) {
+ if ($node->getAttribute('applyBorder') == 1) {
$bordersApplied++;
$this->assertTrue((int)$node->getAttribute('borderId') > 0, 'BorderId is greater than 0');
} else {
@@ -429,7 +429,7 @@ class WriterWithStyleTest extends \PHPUnit_Framework_TestCase
}
}
- $this->assertEquals(2, $bordersApplied, 'Two borders have been applied');
+ $this->assertEquals(3, $bordersApplied, 'Three borders have been applied');
}
/**