66
77use PhpOffice \PhpSpreadsheet \Reader \Xlsx as XlsxReader ;
88use PhpOffice \PhpSpreadsheet \Spreadsheet ;
9+ use PhpOffice \PhpSpreadsheet \Style \Style ;
910use PhpOffice \PhpSpreadsheet \Theme as SpreadsheetTheme ;
1011use PhpOffice \PhpSpreadsheetTests \Functional \AbstractFunctional ;
1112
@@ -14,11 +15,48 @@ class ThemeColorsTest extends AbstractFunctional
1415 public function testOffice2013Theme (): void
1516 {
1617 $ 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+ );
1822 $ reloadedSpreadsheet = $ this ->writeAndReload ($ spreadsheet , 'Xlsx ' );
1923 $ 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+ );
2128 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 );
2260 $ reloadedSpreadsheet ->disconnectWorksheets ();
2361 }
2462
@@ -30,6 +68,13 @@ public function testOffice2007Theme(): void
3068 $ spreadsheet ->disconnectWorksheets ();
3169 self ::assertSame ('Office 2007-2010 ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ());
3270 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 );
3378 $ reloadedSpreadsheet ->disconnectWorksheets ();
3479 }
3580
@@ -40,6 +85,13 @@ public function testDefaultTheme(): void
4085 $ spreadsheet ->disconnectWorksheets ();
4186 self ::assertSame ('Office ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColorName ());
4287 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 );
4395 $ reloadedSpreadsheet ->disconnectWorksheets ();
4496 }
4597
@@ -53,4 +105,37 @@ public function testGalleryTheme(): void
53105 self ::assertSame ('795FAF ' , $ reloadedSpreadsheet ->getTheme ()->getThemeColors ()['accent4 ' ]);
54106 $ reloadedSpreadsheet ->disconnectWorksheets ();
55107 }
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+ }
56141}
0 commit comments