for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Box\Spout\Common\Entity;
use Box\Spout\Common\Entity\Style\Style;
class Row
{
/**
* The cells in this row
* @var Cell[]
*/
protected $cells = [];
* The row style
* @var Style
protected $style;
* Row constructor.
* @param Cell[] $cells
* @param Style|null $style
public function __construct(array $cells, $style)
$this
->setCells($cells)
->setStyle($style);
}
* @return Cell[] $cells
public function getCells()
return $this->cells;
* @return Row
public function setCells(array $cells)
$this->cells = [];
foreach ($cells as $cell) {
$this->addCell($cell);
return $this;
* @param Cell $cell
* @param int $cellIndex
public function setCellAtIndex(Cell $cell, $cellIndex)
$this->cells[$cellIndex] = $cell;
* @return Cell|null
public function getCellAtIndex($cellIndex)
return $this->cells[$cellIndex] ?? null;
public function addCell(Cell $cell)
$this->cells[] = $cell;
* @return int
public function getNumCells()
// When using "setCellAtIndex", it's possible to
// have "$this->cells" contain holes.
if (empty($this->cells)) {
return 0;
return \max(\array_keys($this->cells)) + 1;
* @return Style
public function getStyle()
return $this->style;
public function setStyle($style)
$this->style = $style ?: new Style();
* @return array The row values, as array
public function toArray()
return \array_map(function (Cell $cell) {
return $cell->getValue();
}, $this->cells);