public function addRow($rowArrayOrObject)
    {
        if (is_array($rowArrayOrObject)) {
            $rowArray = $rowArrayOrObject;
        } else if ($rowArrayOrObject instanceof \JsonSerializable) {
            $rowArray = $rowArrayOrObject->jsonSerialize();
        } else {
            throw new BuilderException(sprintf(
                'Row must be either an array or JsonSerializable, %s given instead',
                gettype($rowArrayOrObject)
            ));
        }

        $row = new Row();
        foreach ($rowArray as $columnName => $value) {
            $cell = new Cell($columnName, $value);
            $row->addCell($cell);
        }

        $this->table->addRow($row);
    }