From 0dc1e9b07a12b101ed0df1629497b8de2ef3d456 Mon Sep 17 00:00:00 2001 From: MarkBaker Date: Fri, 6 May 2022 11:43:10 +0200 Subject: [PATCH] Switch iterators to use foreach structure --- src/PhpSpreadsheet/Writer/Ods/Content.php | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/src/PhpSpreadsheet/Writer/Ods/Content.php b/src/PhpSpreadsheet/Writer/Ods/Content.php index 5d227c84..7e02fc51 100644 --- a/src/PhpSpreadsheet/Writer/Ods/Content.php +++ b/src/PhpSpreadsheet/Writer/Ods/Content.php @@ -8,6 +8,7 @@ use PhpOffice\PhpSpreadsheet\Cell\DataType; use PhpOffice\PhpSpreadsheet\Shared\XMLWriter; use PhpOffice\PhpSpreadsheet\Spreadsheet; use PhpOffice\PhpSpreadsheet\Worksheet\Row; +use PhpOffice\PhpSpreadsheet\Worksheet\RowCellIterator; use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet; use PhpOffice\PhpSpreadsheet\Writer\Exception; use PhpOffice\PhpSpreadsheet\Writer\Ods; @@ -146,10 +147,10 @@ class Content extends WriterPart $numberRowsRepeated = self::NUMBER_ROWS_REPEATED_MAX; $span_row = 0; $rows = $sheet->getRowIterator(); - while ($rows->valid()) { + foreach ($rows as $row) { + $cellIterator = $row->getCellIterator(); --$numberRowsRepeated; - $row = $rows->current(); - if ($row->getCellIterator()->valid()) { + if ($cellIterator->valid()) { if ($span_row) { $objWriter->startElement('table:table-row'); if ($span_row > 1) { @@ -168,26 +169,23 @@ class Content extends WriterPart $span_row = 0; } $objWriter->startElement('table:table-row'); - $this->writeCells($objWriter, $row); + $this->writeCells($objWriter, $cellIterator); $objWriter->endElement(); } else { ++$span_row; } - $rows->next(); } } /** * Write cells of the specified row. */ - private function writeCells(XMLWriter $objWriter, Row $row): void + private function writeCells(XMLWriter $objWriter, RowCellIterator $cells): void { $numberColsRepeated = self::NUMBER_COLS_REPEATED_MAX; $prevColumn = -1; - $cells = $row->getCellIterator(); - while ($cells->valid()) { + foreach ($cells as $cell) { /** @var \PhpOffice\PhpSpreadsheet\Cell\Cell $cell */ - $cell = $cells->current(); $column = Coordinate::columnIndexFromString($cell->getColumn()) - 1; $this->writeCellSpan($objWriter, $column, $prevColumn); @@ -250,8 +248,8 @@ class Content extends WriterPart Comment::write($objWriter, $cell); $objWriter->endElement(); $prevColumn = $column; - $cells->next(); } + $numberColsRepeated = $numberColsRepeated - $prevColumn - 1; if ($numberColsRepeated > 0) { if ($numberColsRepeated > 1) {