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 9393 $xlsxFastEditor->setFullCalcOnLoad($worksheetId2, true);
9494
9595 // Direct write access
96+ $xlsxFastEditor->deleteRow($worksheetId1, 5);
9697 $xlsxFastEditor->writeFormula($worksheetId1, 'A1', '=B2*3');
9798 $xlsxFastEditor->writeFloat($worksheetId1, 'B2', 3.14);
9899 $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
261261 return null ;
262262 }
263263
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+
264285 /**
265286 * To iterate over the all the rows of a given worksheet.
266287 * @return \Traversable<XlsxFastEditorRow>
Original file line number Diff line number Diff line change 2020 $ sheet1 = $ xlsxFastEditor ->getWorksheetNumber ('Sheet1 ' );
2121 assert ($ sheet1 === 1 );
2222
23+ assert ($ xlsxFastEditor ->deleteRow ($ sheet1 , 5 ) === true );
24+
2325 assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'D2 ' ) === 3.14159 );
2426 assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'D4 ' ) === -1.0 );
2527 assert ($ xlsxFastEditor ->readFloat ($ sheet1 , 'e5 ' ) === null );
You can’t perform that action at this time.
0 commit comments