如何在PhpSpreadsheet中获取第一列索引

我必须遍历 xls 文档前两列的所有行。问题是该特定文档的第一列是“G”,索引为 7。


有没有办法获得第一列索引,因为我不想对其进行硬编码。


我的循环:


$spreadsheet =\PhpOffice\PhpSpreadsheet\IOFactory::load($path);

$worksheet = $spreadsheet->getActiveSheet();


$highestRow = $worksheet->getHighestRow();


$rows = [];

for ($row = 1; $row <= $highestRow; ++$row) {

    // I WANT TO REPLACE HARD-CODED VALUES OF 7 AND 8

    // WITH $firstCol and $firstCol+1

    for ($col = 7; $col <= 8; ++$col) { 

        $value = $worksheet->getCellByColumnAndRow($col, $row)->getValue();

        $rows[$row][$col] = $value;

    }

}


慕村225694
浏览 122回答 1
1回答

月关宝盒

您可以添加一个while循环来跳过空单元格。试试这个:$rows = [];for ($row = 1; $row <= $highestRow; ++$row) {&nbsp; &nbsp; $col = 1;&nbsp; &nbsp; $cell = $worksheet->getCellByColumnAndRow($col, $row);&nbsp; &nbsp; // Skip empty cells&nbsp; &nbsp; while (in_array($cell->getValue(), [null, ''], true)) {&nbsp; &nbsp; &nbsp; &nbsp; $col++;&nbsp; &nbsp; &nbsp; &nbsp; $cell = $worksheet->getCellByColumnAndRow($col, $row);&nbsp; &nbsp; }&nbsp; &nbsp; $maxCol = $col + 1;&nbsp; &nbsp; for ( ; $col <= $maxCol; ++$col) {&nbsp;&nbsp; &nbsp; &nbsp; &nbsp; $value = $worksheet->getCellByColumnAndRow($col, $row)->getValue();&nbsp; &nbsp; &nbsp; &nbsp; $rows[$row][$col] = $value;&nbsp; &nbsp; }}
打开App,查看更多内容
随时随地看视频慕课网APP