File tree Expand file tree Collapse file tree 2 files changed +55
-4
lines changed
src/PhpSpreadsheet/Reader/Xlsx
tests/PhpSpreadsheetTests/Reader/Xlsx Expand file tree Collapse file tree 2 files changed +55
-4
lines changed Original file line number Diff line number Diff line change @@ -122,11 +122,12 @@ private function sheetFormat(SimpleXMLElement $sheetFormatPrx): void
122122 private function printOptions (SimpleXMLElement $ printOptionsx ): void
123123 {
124124 $ printOptions = $ printOptionsx ->attributes () ?? [];
125- if (isset ($ printOptions ['gridLinesSet ' ]) && self ::boolean ((string ) $ printOptions ['gridLinesSet ' ])) {
126- $ this ->worksheet ->setShowGridlines (true );
127- }
125+ // Spec is weird. gridLines (default false)
126+ // and gridLinesSet (default true) must both be true.
128127 if (isset ($ printOptions ['gridLines ' ]) && self ::boolean ((string ) $ printOptions ['gridLines ' ])) {
129- $ this ->worksheet ->setPrintGridlines (true );
128+ if (!isset ($ printOptions ['gridLinesSet ' ]) || self ::boolean ((string ) $ printOptions ['gridLinesSet ' ])) {
129+ $ this ->worksheet ->setPrintGridlines (true );
130+ }
130131 }
131132 if (isset ($ printOptions ['horizontalCentered ' ]) && self ::boolean ((string ) $ printOptions ['horizontalCentered ' ])) {
132133 $ this ->worksheet ->getPageSetup ()->setHorizontalCentered (true );
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ declare (strict_types=1 );
4+
5+ namespace PhpOffice \PhpSpreadsheetTests \Reader \Xlsx ;
6+
7+ use PhpOffice \PhpSpreadsheet \Spreadsheet ;
8+ use PhpOffice \PhpSpreadsheetTests \Functional \AbstractFunctional ;
9+
10+ class GridlinesTest extends AbstractFunctional
11+ {
12+ /**
13+ * @dataProvider loadDataProvider
14+ */
15+ public function testGridlines (bool $ display , bool $ print ): void
16+ {
17+ $ spreadsheet = new Spreadsheet ();
18+ $ sheet1 = $ spreadsheet ->getActiveSheet ();
19+ $ sheet2 = $ spreadsheet ->createSheet ();
20+ $ sheet2 ->setTitle ('deliberatelyblank ' );
21+ $ sheet1 ->setShowGridlines ($ display );
22+ $ sheet1 ->setPrintGridlines ($ print );
23+ $ sheet1 ->fromArray (
24+ [
25+ [1 , 2 , 3 ],
26+ [4 , 5 , 6 ],
27+ [7 , 8 , 9 ],
28+ ]
29+ );
30+ $ reloadedSpreadsheet = $ this ->writeAndReload ($ spreadsheet , 'Xlsx ' );
31+ $ spreadsheet ->disconnectWorksheets ();
32+ $ rsheet1 = $ reloadedSpreadsheet ->getSheet (0 );
33+ $ rsheet2 = $ reloadedSpreadsheet ->getSheet (1 );
34+ self ::assertSame ($ display , $ rsheet1 ->getShowGridlines ());
35+ self ::assertSame ($ print , $ rsheet1 ->getPrintGridlines ());
36+ self ::assertTrue ($ rsheet2 ->getShowGridlines ());
37+ self ::assertFalse ($ rsheet2 ->getPrintGridlines ());
38+ $ reloadedSpreadsheet ->disconnectWorksheets ();
39+ }
40+
41+ public static function loadDataProvider (): array
42+ {
43+ return [
44+ [true , true ],
45+ [true , false ],
46+ [false , true ],
47+ [false , false ],
48+ ];
49+ }
50+ }
You can’t perform that action at this time.
0 commit comments