Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
只需从PHPExcel获取一行_Php_Phpexcel - Fatal编程技术网

只需从PHPExcel获取一行

只需从PHPExcel获取一行,php,phpexcel,Php,Phpexcel,我试图找到一种使用PHPExcel获取行的方法。在互联网上进行了无数次搜索之后,我只找到了一种迭代的方法,其中有一个可选的起始行。这将导致以下解决方案: foreach ($this->objPHPExcel->getActiveSheet()->getRowIterator($rownumber) as $row) { $cellIterator = $row->getCellIterator(); $cellIterator->setIterat

我试图找到一种使用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()


将以单元格数组的形式返回指定的行

谢谢,我以为它会朝这个方向,只是不知道在
foreach
中循环使用的方法。PHPExcel的行和单元格迭代器都实现了标准的PHP接口;因此,所有标准迭代器方法-current()、key()、next()、revind()和valid()都可用。此外,它们还实现seek()、prev()和resetStart()方法,如果您使用第一行或第一列以外的行或列值实例化迭代器,则后者将非常有用。是否可以直接获取数组而不是迭代器
$myRow = 123;

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