Я попытался найти способ просто получить строку, используя PHPExcel. После многочисленных поисков в Интернете я нашел способ перебирать их с дополнительной стартовой строкой. Это приводит к следующему решению:
foreach ($this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber) as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); foreach ($cellIterator as $cell) { echo $cell->getValue(); } break; }
но это кажется немного уродливым. Есть ли другой способ сделать это?
Да!
$row = $this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber)->current(); $cellIterator = $row->getCellIterator(); $cellIterator->setIterateOnlyExistingCells(false); foreach ($cellIterator as $cell) { echo $cell->getValue(); }
Я не помню, если вы должны использовать next
или current
. Если вы получаете неправильную строку, используйте current()
вместо next()
.
$myRow = 123; $this->objPHPExcel->getActiveSheet() ->rangeToArray( 'A' . $myRow . ':' . $this->objPHPExcel->getActiveSheet()->getHighestColumn() . $myRow );
вернет указанную строку в виде массива ячеек