Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.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
Php 如何使用Box\Spout获取excel工作表的一行_Php_Excel - Fatal编程技术网

Php 如何使用Box\Spout获取excel工作表的一行

Php 如何使用Box\Spout获取excel工作表的一行,php,excel,Php,Excel,我正在试用Box\Spout并重写一些以前使用PHPExcel的代码。遍历行是很清楚的,但在少数情况下,我需要直接处理一个特定的行。我在文档中找不到这个 比如: $row = $sheet->getRow(8); 尝试使用迭代器的key()方法: $it = $sheet->getRowIterator(); $row = $it->key(8); 您不能直接访问行。如果您需要第8行,您需要阅读前8行。。。这是因为Spoot不会在内存中加载整个电子表格,所以它会逐行读取数据

我正在试用Box\Spout并重写一些以前使用PHPExcel的代码。遍历行是很清楚的,但在少数情况下,我需要直接处理一个特定的行。我在文档中找不到这个

比如:

$row = $sheet->getRow(8);

尝试使用迭代器的
key()
方法:

$it = $sheet->getRowIterator();
$row = $it->key(8);

您不能直接访问行。如果您需要第8行,您需要阅读前8行。。。这是因为Spoot不会在内存中加载整个电子表格,所以它会逐行读取数据

但是,您可以这样做:

foreach ($reader->getSheetIterator() as $sheet) {
    foreach ($sheet->getRowIterator() as $rowIndex => $row) {
        if ($rowIndex !== 8) {
            continue;
        }

        // do something with row 8
    }
}

谢谢!我会试试的,我会让你知道的。这似乎不起作用。它返回整数0。太糟糕了,谢谢!我已经想了这么多,但我不得不问。当我们这样做的时候;有人能加上“喷口”这个标签吗?我没有这样做的特权。