<?php
|
|
namespace PhpOffice\PhpSpreadsheet\Worksheet;
|
|
use PhpOffice\PhpSpreadsheet\Spreadsheet;
|
|
class Iterator implements \Iterator
|
{
|
/**
|
* Spreadsheet to iterate.
|
*
|
* @var Spreadsheet
|
*/
|
private $subject;
|
|
/**
|
* Current iterator position.
|
*
|
* @var int
|
*/
|
private $position = 0;
|
|
/**
|
* Create a new worksheet iterator.
|
*
|
* @param Spreadsheet $subject
|
*/
|
public function __construct(Spreadsheet $subject)
|
{
|
// Set subject
|
$this->subject = $subject;
|
}
|
|
/**
|
* Destructor.
|
*/
|
public function __destruct()
|
{
|
unset($this->subject);
|
}
|
|
/**
|
* Rewind iterator.
|
*/
|
public function rewind()
|
{
|
$this->position = 0;
|
}
|
|
/**
|
* Current Worksheet.
|
*
|
* @return Worksheet
|
*/
|
public function current()
|
{
|
return $this->subject->getSheet($this->position);
|
}
|
|
/**
|
* Current key.
|
*
|
* @return int
|
*/
|
public function key()
|
{
|
return $this->position;
|
}
|
|
/**
|
* Next value.
|
*/
|
public function next()
|
{
|
++$this->position;
|
}
|
|
/**
|
* Are there more Worksheet instances available?
|
*
|
* @return bool
|
*/
|
public function valid()
|
{
|
return $this->position < $this->subject->getSheetCount() && $this->position >= 0;
|
}
|
}
|