@@ -188,4 +188,35 @@ public function testAddExternalDuplicateName(): void
188
188
$ sheet ->getCell ('A1 ' )->getStyle ()->getFont ()->setBold (true );
189
189
$ this ->object ->addExternalSheet ($ sheet );
190
190
}
191
+
192
+ public function testAddExternalColumnDimensionStyles (): void
193
+ {
194
+ $ spreadsheet1 = new \PhpOffice \PhpSpreadsheet \Spreadsheet ();
195
+ $ sheet1 = $ spreadsheet1 ->createSheet ()->setTitle ('sheetWithColumnDimension ' );
196
+ $ sheet1 ->getCell ('A1 ' )->setValue (1 );
197
+ $ sheet1 ->getCell ('A1 ' )->getStyle ()->getFont ()->setItalic (true );
198
+ $ sheet1 ->getColumnDimension ('B ' )->setWidth ('10 ' )->setXfIndex ($ sheet1 ->getCell ('A1 ' )->getXfIndex ());
199
+ $ index = $ sheet1 ->getColumnDimension ('B ' )->getXfIndex ();
200
+ self ::assertEquals (1 , $ index );
201
+ self ::assertCount (2 , $ spreadsheet1 ->getCellXfCollection ());
202
+
203
+ $ spreadsheet2 = new \PhpOffice \PhpSpreadsheet \Spreadsheet ();
204
+ $ sheet2 = $ spreadsheet2 ->createSheet ()->setTitle ('sheetWithTwoStyles ' );
205
+ $ sheet2 ->getCell ('A1 ' )->setValue (1 );
206
+ $ sheet2 ->getCell ('A1 ' )->getStyle ()->getFont ()->setBold (true );
207
+ $ sheet2 ->getCell ('B2 ' )->getStyle ()->getFont ()->setSuperscript (true );
208
+ $ countXfs = count ($ spreadsheet2 ->getCellXfCollection ());
209
+ self ::assertEquals (3 , $ countXfs );
210
+
211
+ $ sheet3 = $ spreadsheet2 ->addExternalSheet ($ sheet1 );
212
+ self ::assertCount (5 , $ spreadsheet2 ->getCellXfCollection ());
213
+ self ::assertTrue ($ sheet3 ->getCell ('A1 ' )->getStyle ()->getFont ()->getItalic ());
214
+ self ::assertTrue ($ sheet3 ->getCell ('B1 ' )->getStyle ()->getFont ()->getItalic ());
215
+ self ::assertFalse ($ sheet3 ->getCell ('B1 ' )->getStyle ()->getFont ()->getBold ());
216
+ // Prove Xf index changed although style is same.
217
+ self ::assertEquals ($ countXfs + $ index , $ sheet3 ->getCell ('B1 ' )->getXfIndex ());
218
+ self ::assertEquals ($ countXfs + $ index , $ sheet3 ->getColumnDimension ('B ' )->getXfIndex ());
219
+ }
220
+
221
+
191
222
}
0 commit comments