package and depencies
This commit is contained in:
@@ -9,7 +9,7 @@ class Column
|
||||
*
|
||||
* @var Worksheet
|
||||
*/
|
||||
private $parent;
|
||||
private $worksheet;
|
||||
|
||||
/**
|
||||
* Column index.
|
||||
@@ -21,13 +21,12 @@ class Column
|
||||
/**
|
||||
* Create a new column.
|
||||
*
|
||||
* @param Worksheet $parent
|
||||
* @param string $columnIndex
|
||||
*/
|
||||
public function __construct(?Worksheet $parent = null, $columnIndex = 'A')
|
||||
public function __construct(Worksheet $worksheet, $columnIndex = 'A')
|
||||
{
|
||||
// Set parent and column index
|
||||
$this->parent = $parent;
|
||||
$this->worksheet = $worksheet;
|
||||
$this->columnIndex = $columnIndex;
|
||||
}
|
||||
|
||||
@@ -36,15 +35,14 @@ class Column
|
||||
*/
|
||||
public function __destruct()
|
||||
{
|
||||
$this->parent = null;
|
||||
// @phpstan-ignore-next-line
|
||||
$this->worksheet = null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get column index as string eg: 'A'.
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getColumnIndex()
|
||||
public function getColumnIndex(): string
|
||||
{
|
||||
return $this->columnIndex;
|
||||
}
|
||||
@@ -59,6 +57,54 @@ class Column
|
||||
*/
|
||||
public function getCellIterator($startRow = 1, $endRow = null)
|
||||
{
|
||||
return new ColumnCellIterator($this->parent, $this->columnIndex, $startRow, $endRow);
|
||||
return new ColumnCellIterator($this->worksheet, $this->columnIndex, $startRow, $endRow);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a boolean true if the column contains no cells. By default, this means that no cell records exist in the
|
||||
* collection for this column. false will be returned otherwise.
|
||||
* This rule can be modified by passing a $definitionOfEmptyFlags value:
|
||||
* 1 - CellIterator::TREAT_NULL_VALUE_AS_EMPTY_CELL If the only cells in the collection are null value
|
||||
* cells, then the column will be considered empty.
|
||||
* 2 - CellIterator::TREAT_EMPTY_STRING_AS_EMPTY_CELL If the only cells in the collection are empty
|
||||
* string value cells, then the column will be considered empty.
|
||||
* 3 - CellIterator::TREAT_NULL_VALUE_AS_EMPTY_CELL | CellIterator::TREAT_EMPTY_STRING_AS_EMPTY_CELL
|
||||
* If the only cells in the collection are null value or empty string value cells, then the column
|
||||
* will be considered empty.
|
||||
*
|
||||
* @param int $definitionOfEmptyFlags
|
||||
* Possible Flag Values are:
|
||||
* CellIterator::TREAT_NULL_VALUE_AS_EMPTY_CELL
|
||||
* CellIterator::TREAT_EMPTY_STRING_AS_EMPTY_CELL
|
||||
*/
|
||||
public function isEmpty(int $definitionOfEmptyFlags = 0): bool
|
||||
{
|
||||
$nullValueCellIsEmpty = (bool) ($definitionOfEmptyFlags & CellIterator::TREAT_NULL_VALUE_AS_EMPTY_CELL);
|
||||
$emptyStringCellIsEmpty = (bool) ($definitionOfEmptyFlags & CellIterator::TREAT_EMPTY_STRING_AS_EMPTY_CELL);
|
||||
|
||||
$cellIterator = $this->getCellIterator();
|
||||
$cellIterator->setIterateOnlyExistingCells(true);
|
||||
foreach ($cellIterator as $cell) {
|
||||
/** @scrutinizer ignore-call */
|
||||
$value = $cell->getValue();
|
||||
if ($value === null && $nullValueCellIsEmpty === true) {
|
||||
continue;
|
||||
}
|
||||
if ($value === '' && $emptyStringCellIsEmpty === true) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns bound worksheet.
|
||||
*/
|
||||
public function getWorksheet(): Worksheet
|
||||
{
|
||||
return $this->worksheet;
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user