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
122
122
private function printOptions (SimpleXMLElement $ printOptionsx ): void
123
123
{
124
124
$ 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.
128
127
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
+ }
130
131
}
131
132
if (isset ($ printOptions ['horizontalCentered ' ]) && self ::boolean ((string ) $ printOptions ['horizontalCentered ' ])) {
132
133
$ 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