58 lines
1.1 KiB
PHP
58 lines
1.1 KiB
PHP
<?php
|
|
|
|
namespace PhpOffice\PhpSpreadsheet\Worksheet;
|
|
|
|
use Iterator;
|
|
|
|
abstract class CellIterator implements Iterator
|
|
{
|
|
/**
|
|
* Worksheet to iterate.
|
|
*
|
|
* @var Worksheet
|
|
*/
|
|
protected $worksheet;
|
|
|
|
/**
|
|
* Iterate only existing cells.
|
|
*
|
|
* @var bool
|
|
*/
|
|
protected $onlyExistingCells = false;
|
|
|
|
/**
|
|
* Destructor.
|
|
*/
|
|
public function __destruct()
|
|
{
|
|
$this->worksheet = null;
|
|
}
|
|
|
|
/**
|
|
* Get loop only existing cells.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function getIterateOnlyExistingCells()
|
|
{
|
|
return $this->onlyExistingCells;
|
|
}
|
|
|
|
/**
|
|
* Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary.
|
|
*/
|
|
abstract protected function adjustForExistingOnlyRange();
|
|
|
|
/**
|
|
* Set the iterator to loop only existing cells.
|
|
*
|
|
* @param bool $value
|
|
*/
|
|
public function setIterateOnlyExistingCells($value): void
|
|
{
|
|
$this->onlyExistingCells = (bool) $value;
|
|
|
|
$this->adjustForExistingOnlyRange();
|
|
}
|
|
}
|