<?php
|
|
namespace PhpOffice\PhpSpreadsheet\Worksheet;
|
|
use PhpOffice\PhpSpreadsheet\Exception as PhpSpreadsheetException;
|
|
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()
|
{
|
unset($this->worksheet);
|
}
|
|
/**
|
* Get loop only existing cells.
|
*
|
* @return bool
|
*/
|
public function getIterateOnlyExistingCells()
|
{
|
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)
|
{
|
$this->onlyExistingCells = (bool) $value;
|
|
$this->adjustForExistingOnlyRange();
|
}
|
}
|