Просто введите одну строку из PHPExcel

Я попытался найти способ просто получить строку, используя PHPExcel. После многочисленных поисков в Интернете я нашел способ перебирать их с дополнительной стартовой строкой. Это приводит к следующему решению:

foreach ($this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber) as $row) {
    $cellIterator = $row->getCellIterator();
    $cellIterator->setIterateOnlyExistingCells(false);

    foreach ($cellIterator as $cell) {
        echo $cell->getValue();
    }

    break;
}

но это кажется немного уродливым. Есть ли другой способ сделать это?

Ответ 1

Да!

$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current();

$cellIterator = $row->getCellIterator();
$cellIterator->setIterateOnlyExistingCells(false);

foreach ($cellIterator as $cell) {
    echo $cell->getValue();
}

Я не помню, если вы должны использовать next или current. Если вы получаете неправильную строку, используйте current() вместо next().

Ответ 2

$myRow = 123;

$this->objPHPExcel->getActiveSheet()
    ->rangeToArray(
        'A' . $myRow . 
        ':' . 
        $this->objPHPExcel->getActiveSheet()->getHighestColumn() . $myRow
    );

вернет указанную строку в виде массива ячеек