6
6
7
7
use PhpOffice \PhpSpreadsheet \Reader \Xlsx as XlsxReader ;
8
8
use PhpOffice \PhpSpreadsheet \Spreadsheet ;
9
+ use PhpOffice \PhpSpreadsheet \Style \Style ;
9
10
use PhpOffice \PhpSpreadsheet \Theme as SpreadsheetTheme ;
10
11
use PhpOffice \PhpSpreadsheetTests \Functional \AbstractFunctional ;
11
12
@@ -14,11 +15,48 @@ class ThemeColorsTest extends AbstractFunctional
14
15
public function testOffice2013Theme (): void
15
16
{
16
17
$ spreadsheet = new Spreadsheet ();
17
- $ spreadsheet ->getTheme ()->setThemeColorName (SpreadsheetTheme::COLOR_SCHEME_2013_PLUS_NAME );
18
+ $ spreadsheet ->getTheme ()
19
+ ->setThemeColorName (
20
+ SpreadsheetTheme::COLOR_SCHEME_2013_PLUS_NAME //* @phpstan-ignore-line
21
+ );
18
22
$ reloadedSpreadsheet = $ this ->writeAndReload ($ spreadsheet , 'Xlsx ' );
19
23
$ spreadsheet ->disconnectWorksheets ();
20
- self ::assertSame ('Office 2013+ ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ());
24
+ self ::assertSame (
25
+ SpreadsheetTheme::COLOR_SCHEME_2013_PLUS_NAME , //* @phpstan-ignore-line
26
+ $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ()
27
+ );
21
28
self ::assertSame ('FFC000 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
29
+ self ::assertSame ('Calibri Light ' , $ reloadedSpreadsheet ->getTheme ()->getMajorFontLatin ());
30
+ self ::assertSame ('Calibri ' , $ reloadedSpreadsheet ->getTheme ()->getMinorFontLatin ());
31
+ $ defaultFont2 = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
32
+ self ::assertSame ('Calibri ' , $ defaultFont2 );
33
+ $ font3 = $ reloadedSpreadsheet ->getActiveSheet ()
34
+ ->getStyle ('Z10 ' )->getFont ()->getName ();
35
+ self ::assertSame ('Calibri ' , $ font3 );
36
+ $ reloadedSpreadsheet ->disconnectWorksheets ();
37
+ }
38
+
39
+ public function testOffice2013Theme2 (): void
40
+ {
41
+ $ spreadsheet = new Spreadsheet ();
42
+ $ spreadsheet ->getTheme ()
43
+ ->setThemeColorName (
44
+ SpreadsheetTheme::COLOR_SCHEME_2013_2022_NAME
45
+ );
46
+ $ reloadedSpreadsheet = $ this ->writeAndReload ($ spreadsheet , 'Xlsx ' );
47
+ $ spreadsheet ->disconnectWorksheets ();
48
+ self ::assertSame (
49
+ SpreadsheetTheme::COLOR_SCHEME_2013_2022_NAME ,
50
+ $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ()
51
+ );
52
+ self ::assertSame ('FFC000 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
53
+ self ::assertSame ('Calibri Light ' , $ reloadedSpreadsheet ->getTheme ()->getMajorFontLatin ());
54
+ self ::assertSame ('Calibri ' , $ reloadedSpreadsheet ->getTheme ()->getMinorFontLatin ());
55
+ $ defaultFont2 = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
56
+ self ::assertSame ('Calibri ' , $ defaultFont2 );
57
+ $ font3 = $ reloadedSpreadsheet ->getActiveSheet ()
58
+ ->getStyle ('Z10 ' )->getFont ()->getName ();
59
+ self ::assertSame ('Calibri ' , $ font3 );
22
60
$ reloadedSpreadsheet ->disconnectWorksheets ();
23
61
}
24
62
@@ -30,6 +68,13 @@ public function testOffice2007Theme(): void
30
68
$ spreadsheet ->disconnectWorksheets ();
31
69
self ::assertSame ('Office 2007-2010 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ());
32
70
self ::assertSame ('8064A2 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
71
+ self ::assertSame ('Cambria ' , $ reloadedSpreadsheet ->getTheme ()->getMajorFontLatin ());
72
+ self ::assertSame ('Calibri ' , $ reloadedSpreadsheet ->getTheme ()->getMinorFontLatin ());
73
+ $ defaultFont2 = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
74
+ self ::assertSame ('Calibri ' , $ defaultFont2 );
75
+ $ font3 = $ reloadedSpreadsheet ->getActiveSheet ()
76
+ ->getStyle ('Z10 ' )->getFont ()->getName ();
77
+ self ::assertSame ('Calibri ' , $ font3 );
33
78
$ reloadedSpreadsheet ->disconnectWorksheets ();
34
79
}
35
80
@@ -40,6 +85,13 @@ public function testDefaultTheme(): void
40
85
$ spreadsheet ->disconnectWorksheets ();
41
86
self ::assertSame ('Office ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ());
42
87
self ::assertSame ('8064A2 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
88
+ self ::assertSame ('Cambria ' , $ reloadedSpreadsheet ->getTheme ()->getMajorFontLatin ());
89
+ self ::assertSame ('Calibri ' , $ reloadedSpreadsheet ->getTheme ()->getMinorFontLatin ());
90
+ $ defaultFont2 = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
91
+ self ::assertSame ('Calibri ' , $ defaultFont2 );
92
+ $ font3 = $ reloadedSpreadsheet ->getActiveSheet ()
93
+ ->getStyle ('Z10 ' )->getFont ()->getName ();
94
+ self ::assertSame ('Calibri ' , $ font3 );
43
95
$ reloadedSpreadsheet ->disconnectWorksheets ();
44
96
}
45
97
@@ -53,4 +105,37 @@ public function testGalleryTheme(): void
53
105
self ::assertSame ('795FAF ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
54
106
$ reloadedSpreadsheet ->disconnectWorksheets ();
55
107
}
108
+
109
+ public function testOffice2023Theme (): void
110
+ {
111
+ $ spreadsheet = new Spreadsheet ();
112
+ $ spreadsheet ->getTheme ()
113
+ ->setThemeColorName (
114
+ SpreadsheetTheme::COLOR_SCHEME_2023_PLUS_NAME ,
115
+ null ,
116
+ $ spreadsheet
117
+ );
118
+ self ::assertSame ('Aptos Narrow ' , $ spreadsheet ->getDefaultStyle ()->getFont ()->getName (), 'default style is attached to spreadsheet ' );
119
+ $ style = new Style ();
120
+ self ::assertSame ('Calibri ' , $ style ->getFont ()->getName (), 'style not attached to spreadsheet ' );
121
+ $ style2 = $ spreadsheet ->getActiveSheet ()->getStyle ('A7 ' );
122
+ self ::assertSame ('Aptos Narrow ' , $ style2 ->getFont ()->getName (), 'font is attached to spreadsheet ' );
123
+ $ reloadedSpreadsheet = $ this ->writeAndReload ($ spreadsheet , 'Xlsx ' );
124
+ $ spreadsheet ->disconnectWorksheets ();
125
+ self ::assertSame (
126
+ SpreadsheetTheme::COLOR_SCHEME_2023_PLUS_NAME ,
127
+ $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ()
128
+ );
129
+ self ::assertSame ('0F9ED5 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
130
+ self ::assertSame ('Aptos Display ' , $ reloadedSpreadsheet ->getTheme ()->getMajorFontLatin ());
131
+ self ::assertSame ('Aptos Narrow ' , $ reloadedSpreadsheet ->getTheme ()->getMinorFontLatin ());
132
+ $ defaultFont = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
133
+ self ::assertSame ('Aptos Narrow ' , $ defaultFont );
134
+ $ defaultFont2 = $ reloadedSpreadsheet ->getDefaultStyle ()->getFont ()->getName ();
135
+ self ::assertSame ('Aptos Narrow ' , $ defaultFont2 );
136
+ $ font3 = $ reloadedSpreadsheet ->getActiveSheet ()
137
+ ->getStyle ('Z10 ' )->getFont ()->getName ();
138
+ self ::assertSame ('Aptos Narrow ' , $ font3 );
139
+ $ reloadedSpreadsheet ->disconnectWorksheets ();
140
+ }
56
141
}
0 commit comments