Skip to content

Commit 0dc1e9b

Browse files
author
MarkBaker
committed
Switch iterators to use foreach structure
1 parent 7201ddd commit 0dc1e9b

File tree

1 file changed

+8
-10
lines changed

1 file changed

+8
-10
lines changed

src/PhpSpreadsheet/Writer/Ods/Content.php

Lines changed: 8 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88
use PhpOffice\PhpSpreadsheet\Shared\XMLWriter;
99
use PhpOffice\PhpSpreadsheet\Spreadsheet;
1010
use PhpOffice\PhpSpreadsheet\Worksheet\Row;
11+
use PhpOffice\PhpSpreadsheet\Worksheet\RowCellIterator;
1112
use PhpOffice\PhpSpreadsheet\Worksheet\Worksheet;
1213
use PhpOffice\PhpSpreadsheet\Writer\Exception;
1314
use PhpOffice\PhpSpreadsheet\Writer\Ods;
@@ -146,10 +147,10 @@ private function writeRows(XMLWriter $objWriter, Worksheet $sheet, int $sheetInd
146147
$numberRowsRepeated = self::NUMBER_ROWS_REPEATED_MAX;
147148
$span_row = 0;
148149
$rows = $sheet->getRowIterator();
149-
while ($rows->valid()) {
150+
foreach ($rows as $row) {
151+
$cellIterator = $row->getCellIterator();
150152
--$numberRowsRepeated;
151-
$row = $rows->current();
152-
if ($row->getCellIterator()->valid()) {
153+
if ($cellIterator->valid()) {
153154
if ($span_row) {
154155
$objWriter->startElement('table:table-row');
155156
if ($span_row > 1) {
@@ -168,26 +169,23 @@ private function writeRows(XMLWriter $objWriter, Worksheet $sheet, int $sheetInd
168169
$span_row = 0;
169170
}
170171
$objWriter->startElement('table:table-row');
171-
$this->writeCells($objWriter, $row);
172+
$this->writeCells($objWriter, $cellIterator);
172173
$objWriter->endElement();
173174
} else {
174175
++$span_row;
175176
}
176-
$rows->next();
177177
}
178178
}
179179

180180
/**
181181
* Write cells of the specified row.
182182
*/
183-
private function writeCells(XMLWriter $objWriter, Row $row): void
183+
private function writeCells(XMLWriter $objWriter, RowCellIterator $cells): void
184184
{
185185
$numberColsRepeated = self::NUMBER_COLS_REPEATED_MAX;
186186
$prevColumn = -1;
187-
$cells = $row->getCellIterator();
188-
while ($cells->valid()) {
187+
foreach ($cells as $cell) {
189188
/** @var \PhpOffice\PhpSpreadsheet\Cell\Cell $cell */
190-
$cell = $cells->current();
191189
$column = Coordinate::columnIndexFromString($cell->getColumn()) - 1;
192190

193191
$this->writeCellSpan($objWriter, $column, $prevColumn);
@@ -250,8 +248,8 @@ private function writeCells(XMLWriter $objWriter, Row $row): void
250248
Comment::write($objWriter, $cell);
251249
$objWriter->endElement();
252250
$prevColumn = $column;
253-
$cells->next();
254251
}
252+
255253
$numberColsRepeated = $numberColsRepeated - $prevColumn - 1;
256254
if ($numberColsRepeated > 0) {
257255
if ($numberColsRepeated > 1) {

0 commit comments

Comments
 (0)