class PHPExcel_Worksheet_ColumnCellIterator in Loft Data Grids 7.2
Same name and namespace in other branches
- 6.2 vendor/phpoffice/phpexcel/Classes/PHPExcel/Worksheet/ColumnCellIterator.php \PHPExcel_Worksheet_ColumnCellIterator
PHPExcel_Worksheet_ColumnCellIterator
Used to iterate columns in a PHPExcel_Worksheet
@category PHPExcel @package PHPExcel_Worksheet @copyright Copyright (c) 2006 - 2014 PHPExcel (http://www.codeplex.com/PHPExcel)
Hierarchy
- class \PHPExcel_Worksheet_CellIterator
- class \PHPExcel_Worksheet_ColumnCellIterator implements \Iterator
Expanded class hierarchy of PHPExcel_Worksheet_ColumnCellIterator
1 string reference to 'PHPExcel_Worksheet_ColumnCellIterator'
- WorksheetColumnTest::testGetCellIterator in vendor/
phpoffice/ phpexcel/ unitTests/ Classes/ PHPExcel/ Worksheet/ WorksheetColumnTest.php
File
- vendor/
phpoffice/ phpexcel/ Classes/ PHPExcel/ Worksheet/ ColumnCellIterator.php, line 38
View source
class PHPExcel_Worksheet_ColumnCellIterator extends PHPExcel_Worksheet_CellIterator implements Iterator {
/**
* Column index
*
* @var string
*/
protected $_columnIndex;
/**
* Start position
*
* @var int
*/
protected $_startRow = 1;
/**
* End position
*
* @var int
*/
protected $_endRow = 1;
/**
* Create a new row iterator
*
* @param PHPExcel_Worksheet $subject The worksheet to iterate over
* @param string $columnIndex The column that we want to iterate
* @param integer $startRow The row number at which to start iterating
* @param integer $endRow Optionally, the row number at which to stop iterating
*/
public function __construct(PHPExcel_Worksheet $subject = null, $columnIndex, $startRow = 1, $endRow = null) {
// Set subject
$this->_subject = $subject;
$this->_columnIndex = PHPExcel_Cell::columnIndexFromString($columnIndex) - 1;
$this
->resetEnd($endRow);
$this
->resetStart($startRow);
}
/**
* Destructor
*/
public function __destruct() {
unset($this->_subject);
}
/**
* (Re)Set the start row and the current row pointer
*
* @param integer $startRow The row number at which to start iterating
* @return PHPExcel_Worksheet_ColumnCellIterator
* @throws PHPExcel_Exception
*/
public function resetStart($startRow = 1) {
$this->_startRow = $startRow;
$this
->adjustForExistingOnlyRange();
$this
->seek($startRow);
return $this;
}
/**
* (Re)Set the end row
*
* @param integer $endRow The row number at which to stop iterating
* @return PHPExcel_Worksheet_ColumnCellIterator
* @throws PHPExcel_Exception
*/
public function resetEnd($endRow = null) {
$this->_endRow = $endRow ? $endRow : $this->_subject
->getHighestRow();
$this
->adjustForExistingOnlyRange();
return $this;
}
/**
* Set the row pointer to the selected row
*
* @param integer $row The row number to set the current pointer at
* @return PHPExcel_Worksheet_ColumnCellIterator
* @throws PHPExcel_Exception
*/
public function seek($row = 1) {
if ($row < $this->_startRow || $row > $this->_endRow) {
throw new PHPExcel_Exception("Row {$row} is out of range ({$this->_startRow} - {$this->_endRow})");
}
elseif ($this->_onlyExistingCells && !$this->_subject
->cellExistsByColumnAndRow($this->_columnIndex, $row)) {
throw new PHPExcel_Exception('In "IterateOnlyExistingCells" mode and Cell does not exist');
}
$this->_position = $row;
return $this;
}
/**
* Rewind the iterator to the starting row
*/
public function rewind() {
$this->_position = $this->_startRow;
}
/**
* Return the current cell in this worksheet column
*
* @return PHPExcel_Worksheet_Row
*/
public function current() {
return $this->_subject
->getCellByColumnAndRow($this->_columnIndex, $this->_position);
}
/**
* Return the current iterator key
*
* @return int
*/
public function key() {
return $this->_position;
}
/**
* Set the iterator to its next value
*/
public function next() {
do {
++$this->_position;
} while ($this->_onlyExistingCells && !$this->_subject
->cellExistsByColumnAndRow($this->_columnIndex, $this->_position) && $this->_position <= $this->_endRow);
}
/**
* Set the iterator to its previous value
*/
public function prev() {
if ($this->_position <= $this->_startRow) {
throw new PHPExcel_Exception("Row is already at the beginning of range ({$this->_startRow} - {$this->_endRow})");
}
do {
--$this->_position;
} while ($this->_onlyExistingCells && !$this->_subject
->cellExistsByColumnAndRow($this->_columnIndex, $this->_position) && $this->_position >= $this->_startRow);
}
/**
* Indicate if more rows exist in the worksheet range of rows that we're iterating
*
* @return boolean
*/
public function valid() {
return $this->_position <= $this->_endRow;
}
/**
* Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary
*
* @throws PHPExcel_Exception
*/
protected function adjustForExistingOnlyRange() {
if ($this->_onlyExistingCells) {
while (!$this->_subject
->cellExistsByColumnAndRow($this->_columnIndex, $this->_startRow) && $this->_startRow <= $this->_endRow) {
++$this->_startRow;
}
if ($this->_startRow > $this->_endRow) {
throw new PHPExcel_Exception('No cells exist within the specified range');
}
while (!$this->_subject
->cellExistsByColumnAndRow($this->_columnIndex, $this->_endRow) && $this->_endRow >= $this->_startRow) {
--$this->_endRow;
}
if ($this->_endRow < $this->_startRow) {
throw new PHPExcel_Exception('No cells exist within the specified range');
}
}
}
}
Members
Name | Modifiers | Type | Description | Overrides |
---|---|---|---|---|
PHPExcel_Worksheet_CellIterator:: |
protected | property | * Iterate only existing cells * * | |
PHPExcel_Worksheet_CellIterator:: |
protected | property | * Current iterator position * * | |
PHPExcel_Worksheet_CellIterator:: |
protected | property | * PHPExcel_Worksheet to iterate * * | |
PHPExcel_Worksheet_CellIterator:: |
public | function | * Get loop only existing cells * * | |
PHPExcel_Worksheet_CellIterator:: |
public | function | * Set the iterator to loop only existing cells * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
protected | property | * Column index * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
protected | property | * End position * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
protected | property | * Start position * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
protected | function |
* Validate start/end values for "IterateOnlyExistingCells" mode, and adjust if necessary
* Overrides PHPExcel_Worksheet_CellIterator:: |
|
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Return the current cell in this worksheet column * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Return the current iterator key * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Set the iterator to its next value | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Set the iterator to its previous value | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * (Re)Set the end row * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * (Re)Set the start row and the current row pointer * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Rewind the iterator to the starting row | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Set the row pointer to the selected row * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Indicate if more rows exist in the worksheet range of rows that we're iterating * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function | * Create a new row iterator * * | |
PHPExcel_Worksheet_ColumnCellIterator:: |
public | function |
* Destructor Overrides PHPExcel_Worksheet_CellIterator:: |