See Release Notes
Long Term Support Release
<?php namespace PhpOffice\PhpSpreadsheet\Worksheet;< use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;> use Iterator; > use PhpOffice\PhpSpreadsheet\Cell\Cell; > use PhpOffice\PhpSpreadsheet\Collection\Cells;< abstract class CellIterator implements \Iterator> /** > * @template TKey > * > * @implements Iterator<TKey, Cell> > */ > abstract class CellIterator implements Iterator{> public const TREAT_NULL_VALUE_AS_EMPTY_CELL = 1; /** > * Worksheet to iterate. > public const TREAT_EMPTY_STRING_AS_EMPTY_CELL = 2; * >* @var Worksheet */ protected $worksheet; /**> * Cell Collection to iterate. * Iterate only existing cells. > * * > * @var Cells * @var bool > */ */ > protected $cellCollection; protected $onlyExistingCells = false; > > /**/** * Destructor. */ public function __destruct() {< unset($this->worksheet);> // @phpstan-ignore-next-line > $this->worksheet = $this->cellCollection = null;} /** * Get loop only existing cells.< * < * @return bool*/< public function getIterateOnlyExistingCells()> public function getIterateOnlyExistingCells(): bool{ return $this->onlyExistingCells; } /** * Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary.< * < * @throws PhpSpreadsheetException*/ abstract protected function adjustForExistingOnlyRange(); /** * Set the iterator to loop only existing cells.< * < * @param bool $value < * < * @throws PhpSpreadsheetException*/< public function setIterateOnlyExistingCells($value)> public function setIterateOnlyExistingCells(bool $value): void{ $this->onlyExistingCells = (bool) $value; $this->adjustForExistingOnlyRange(); } }