4
4
5
5
use PhpOffice \PhpSpreadsheet \Cell \Coordinate ;
6
6
use PhpOffice \PhpSpreadsheet \Cell \DataValidation ;
7
- use PhpOffice \PhpSpreadsheet \Document \ Properties ;
7
+ use PhpOffice \PhpSpreadsheet \IOFactory ;
8
8
use PhpOffice \PhpSpreadsheet \Reader \Xlsx ;
9
9
use PhpOffice \PhpSpreadsheet \Shared \File ;
10
10
use PhpOffice \PhpSpreadsheet \Style \Conditional ;
@@ -37,6 +37,7 @@ public function testLoadXlsxRowColumnAttributes(): void
37
37
}
38
38
39
39
self ::assertFalse ($ worksheet ->getColumnDimension ('E ' )->getVisible ());
40
+ $ spreadsheet ->disconnectWorksheets ();
40
41
}
41
42
42
43
public function testLoadXlsxWithStyles (): void
@@ -61,6 +62,54 @@ public function testLoadXlsxWithStyles(): void
61
62
);
62
63
}
63
64
}
65
+ $ spreadsheet ->disconnectWorksheets ();
66
+ }
67
+
68
+ /**
69
+ * Test load Xlsx file without styles.xml.
70
+ */
71
+ public function testLoadXlsxWithoutStyles (): void
72
+ {
73
+ $ filename = 'tests/data/Reader/XLSX/issue.2246a.xlsx ' ;
74
+ $ reader = new Xlsx ();
75
+ $ spreadsheet = $ reader ->load ($ filename );
76
+
77
+ $ tempFilename = File::temporaryFilename ();
78
+ $ writer = IOFactory::createWriter ($ spreadsheet , 'Xlsx ' );
79
+ $ writer ->save ($ tempFilename );
80
+
81
+ $ reader = new Xlsx ();
82
+ $ reloadedSpreadsheet = $ reader ->load ($ tempFilename );
83
+ unlink ($ tempFilename );
84
+
85
+ $ reloadedWorksheet = $ reloadedSpreadsheet ->getActiveSheet ();
86
+
87
+ self ::assertEquals ('TipoDato ' , $ reloadedWorksheet ->getCell ('A1 ' )->getValue ());
88
+ $ spreadsheet ->disconnectWorksheets ();
89
+ $ reloadedSpreadsheet ->disconnectWorksheets ();
90
+ }
91
+
92
+ /**
93
+ * Test load Xlsx file with empty styles.xml.
94
+ */
95
+ public function testLoadXlsxWithEmptyStyles (): void
96
+ {
97
+ $ filename = 'tests/data/Reader/XLSX/issue.2246b.xlsx ' ;
98
+ $ reader = new Xlsx ();
99
+ $ spreadsheet = $ reader ->load ($ filename );
100
+
101
+ $ tempFilename = File::temporaryFilename ();
102
+ $ writer = IOFactory::createWriter ($ spreadsheet , 'Xlsx ' );
103
+ $ writer ->save ($ tempFilename );
104
+
105
+ $ reader = new Xlsx ();
106
+ $ reloadedSpreadsheet = $ reader ->load ($ tempFilename );
107
+ unlink ($ tempFilename );
108
+
109
+ $ reloadedWorksheet = $ reloadedSpreadsheet ->getActiveSheet ();
110
+ self ::assertEquals ('TipoDato ' , $ reloadedWorksheet ->getCell ('A1 ' )->getValue ());
111
+ $ spreadsheet ->disconnectWorksheets ();
112
+ $ reloadedSpreadsheet ->disconnectWorksheets ();
64
113
}
65
114
66
115
public function testLoadXlsxAutofilter (): void
@@ -78,6 +127,7 @@ public function testLoadXlsxAutofilter(): void
78
127
AutoFilter \Column::AUTOFILTER_FILTERTYPE_FILTER ,
79
128
$ autofilter ->getColumn ('A ' )->getFilterType ()
80
129
);
130
+ $ spreadsheet ->disconnectWorksheets ();
81
131
}
82
132
83
133
public function testLoadXlsxPageSetup (): void
@@ -97,6 +147,7 @@ public function testLoadXlsxPageSetup(): void
97
147
98
148
self ::assertEquals (PageSetup::PAPERSIZE_A4 , $ worksheet ->getPageSetup ()->getPaperSize ());
99
149
self ::assertEquals (['A10 ' , 'A20 ' , 'A30 ' , 'A40 ' , 'A50 ' ], array_keys ($ worksheet ->getBreaks ()));
150
+ $ spreadsheet ->disconnectWorksheets ();
100
151
}
101
152
102
153
public function testLoadXlsxConditionalFormatting (): void
@@ -116,6 +167,7 @@ public function testLoadXlsxConditionalFormatting(): void
116
167
self ::assertEquals (Conditional::OPERATOR_BETWEEN , $ conditionalRule ->getOperatorType ());
117
168
self ::assertEquals (['200 ' , '400 ' ], $ conditionalRule ->getConditions ());
118
169
self ::assertInstanceOf (Style::class, $ conditionalRule ->getStyle ());
170
+ $ spreadsheet ->disconnectWorksheets ();
119
171
}
120
172
121
173
public function testLoadXlsxDataValidation (): void
@@ -127,6 +179,7 @@ public function testLoadXlsxDataValidation(): void
127
179
$ worksheet = $ spreadsheet ->getActiveSheet ();
128
180
129
181
self ::assertTrue ($ worksheet ->getCell ('B3 ' )->hasDataValidation ());
182
+ $ spreadsheet ->disconnectWorksheets ();
130
183
}
131
184
132
185
/*
@@ -152,6 +205,7 @@ public function testLoadXlsxDataValidationOfAnotherSheet(): void
152
205
self ::assertTrue ($ validationCell ->hasDataValidation ());
153
206
self ::assertSame (DataValidation::TYPE_LIST , $ validationCell ->getDataValidation ()->getType ());
154
207
self ::assertSame ('Feuil2!$A$3:$A$5 ' , $ validationCell ->getDataValidation ()->getFormula1 ());
208
+ $ spreadsheet ->disconnectWorksheets ();
155
209
}
156
210
157
211
/**
@@ -163,7 +217,8 @@ public function testLoadXlsxWithoutCellReference(): void
163
217
{
164
218
$ filename = 'tests/data/Reader/XLSX/without_cell_reference.xlsx ' ;
165
219
$ reader = new Xlsx ();
166
- $ reader ->load ($ filename );
220
+ $ spreadsheet = $ reader ->load ($ filename );
221
+ $ spreadsheet ->disconnectWorksheets ();
167
222
}
168
223
169
224
/**
@@ -174,12 +229,14 @@ public function testLoadWithReadFilter(): void
174
229
$ filename = 'tests/data/Reader/XLSX/without_cell_reference.xlsx ' ;
175
230
$ reader = new Xlsx ();
176
231
$ reader ->setReadFilter (new OddColumnReadFilter ());
177
- $ data = $ reader ->load ($ filename )->getActiveSheet ()->toArray ();
232
+ $ spreadsheet = $ reader ->load ($ filename );
233
+ $ data = $ spreadsheet ->getActiveSheet ()->toArray ();
178
234
$ ref = [1.0 , null , 3.0 , null , 5.0 , null , 7.0 , null , 9.0 , null ];
179
235
180
236
for ($ i = 0 ; $ i < 10 ; ++$ i ) {
181
237
self ::assertEquals ($ ref , \array_slice ($ data [$ i ], 0 , 10 , true ));
182
238
}
239
+ $ spreadsheet ->disconnectWorksheets ();
183
240
}
184
241
185
242
/**
@@ -191,7 +248,8 @@ public function testLoadXlsxWithDoubleAttrDrawing(): void
191
248
{
192
249
$ filename = 'tests/data/Reader/XLSX/double_attr_drawing.xlsx ' ;
193
250
$ reader = new Xlsx ();
194
- $ reader ->load ($ filename );
251
+ $ spreadsheet = $ reader ->load ($ filename );
252
+ $ spreadsheet ->disconnectWorksheets ();
195
253
}
196
254
197
255
/**
@@ -206,10 +264,12 @@ public function testLoadSaveWithEmptyDrawings(): void
206
264
$ resultFilename = File::temporaryFilename ();
207
265
$ writer = new \PhpOffice \PhpSpreadsheet \Writer \Xlsx ($ excel );
208
266
$ writer ->save ($ resultFilename );
267
+ $ excel ->disconnectWorksheets ();
209
268
$ excel = $ reader ->load ($ resultFilename );
210
269
unlink ($ resultFilename );
211
270
// Fake assert. The only thing we need is to ensure the file is loaded without exception
212
271
self ::assertNotNull ($ excel );
272
+ $ excel ->disconnectWorksheets ();
213
273
}
214
274
215
275
/**
0 commit comments