File tree Expand file tree Collapse file tree 4 files changed +24
-0
lines changed Expand file tree Collapse file tree 4 files changed +24
-0
lines changed Original file line number Diff line number Diff line change 93
93
$xlsxFastEditor->setFullCalcOnLoad($worksheetId2, true);
94
94
95
95
// Direct write access
96
+ $xlsxFastEditor->deleteRow($worksheetId1, 5);
96
97
$xlsxFastEditor->writeFormula($worksheetId1, 'A1', '=B2*3');
97
98
$xlsxFastEditor->writeFloat($worksheetId1, 'B2', 3.14);
98
99
$xlsxFastEditor->writeInt($worksheetId1, 'C3', 13);
Original file line number Diff line number Diff line change @@ -261,6 +261,27 @@ public function getLastRow(int $sheetNumber): ?XlsxFastEditorRow
261
261
return null ;
262
262
}
263
263
264
+ /**
265
+ * Delete the specified row of the specified worksheet.
266
+ * @param int $sheetNumber Worksheet number (base 1)
267
+ */
268
+ public function deleteRow (int $ sheetNumber , int $ rowNumber ): bool
269
+ {
270
+ $ dom = $ this ->getDomFromPath (self ::getWorksheetPath ($ sheetNumber ));
271
+ $ xpath = new \DOMXPath ($ dom );
272
+ $ xpath ->registerNamespace ('o ' , self ::OXML_NAMESPACE );
273
+
274
+ $ rs = $ xpath ->query ("/o:worksheet/o:sheetData/o:row[@r=' {$ rowNumber }'][1] " );
275
+ if ($ rs !== false && $ rs ->length > 0 ) {
276
+ $ r = $ rs [0 ];
277
+ if (!($ r instanceof \DOMElement) || $ r ->parentNode === null ) {
278
+ throw new XlsxFastEditorXmlException ("Error querying XML fragment for row {$ sheetNumber } of worksheet {$ sheetNumber }! " );
279
+ }
280
+ return $ r ->parentNode ->removeChild ($ r ) != false ;
281
+ }
282
+ return false ;
283
+ }
284
+
264
285
/**
265
286
* To iterate over the all the rows of a given worksheet.
266
287
* @return \Traversable<XlsxFastEditorRow>
Original file line number Diff line number Diff line change 20
20
$ sheet1 = $ xlsxFastEditor ->getWorksheetNumber ('Sheet1 ' );
21
21
assert ($ sheet1 === 1 );
22
22
23
+ assert ($ xlsxFastEditor ->deleteRow ($ sheet1 , 5 ) === true );
24
+
23
25
assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'D2 ' ) === 3.14159 );
24
26
assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'D4 ' ) === -1.0 );
25
27
assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'e5 ' ) === null );
You can’t perform that action at this time.
0 commit comments