Search moodle.org's
Developer Documentation

See Release Notes
Long Term Support Release

  • Bug fixes for general core bugs in 3.9.x will end* 10 May 2021 (12 months).
  • Bug fixes for security issues in 3.9.x will end* 8 May 2023 (36 months).
  • PHP version: minimum PHP 7.2.0 Note: minimum PHP version has increased since Moodle 3.8. PHP 7.3.x and 7.4.x are supported too.
<?php

namespace PhpOffice\PhpSpreadsheet\Worksheet;

< use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
> use Iterator as NativeIterator; > use PhpOffice\PhpSpreadsheet\Cell\Cell; > use PhpOffice\PhpSpreadsheet\Collection\Cells;
< abstract class CellIterator implements \Iterator
> /** > * @template TKey > * > * @implements NativeIterator<TKey, Cell> > */ > abstract class CellIterator implements NativeIterator
{
> public const TREAT_NULL_VALUE_AS_EMPTY_CELL = 1; /** > * Worksheet to iterate. > public const TREAT_EMPTY_STRING_AS_EMPTY_CELL = 2; * > * @var Worksheet > public const IF_NOT_EXISTS_RETURN_NULL = false; */ > protected $worksheet; > public const IF_NOT_EXISTS_CREATE_NEW = true; >
/**
> * Cell Collection to iterate. * Iterate only existing cells. > * * > * @var Cells * @var bool > */ */ > protected $cellCollection; protected $onlyExistingCells = false; > > /**
/**
> * If iterating all cells, and a cell doesn't exist, identifies whether a new cell should be created, * Destructor. > * or if the iterator should return a null value. */ > * public function __destruct() > * @var bool { > */ unset($this->worksheet); > protected $ifNotExists = self::IF_NOT_EXISTS_CREATE_NEW; } > > /**
< unset($this->worksheet);
> // @phpstan-ignore-next-line > $this->worksheet = $this->cellCollection = null; > } > > public function getIfNotExists(): bool > { > return $this->ifNotExists; > } > > public function setIfNotExists(bool $ifNotExists = self::IF_NOT_EXISTS_CREATE_NEW): void > { > $this->ifNotExists = $ifNotExists;
* 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
> * Validate start/end values for 'IterateOnlyExistingCells' mode, and adjust if necessary.
*/
< abstract protected function adjustForExistingOnlyRange();
> abstract protected function adjustForExistingOnlyRange(): void;
/** * 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(); } }