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

时间:2018-02-09 15:00:04

标签: php excel

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

类似的东西:

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

2 个答案:

答案 0 :(得分:2)

您无法直接访问行。如果您需要第8行,则需要读取前8行...这是因为Spout不会将整个电子表格加载到内存中,因此它会逐行读取数据。

但是,您可以这样做:

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

        // do something with row 8
    }
}

答案 1 :(得分:1)

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

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