无法在for循环中检索单元格值。陷入无限循环

时间:2017-02-10 11:04:46

标签: php phpexcel

我试图从xlsx文件中的单元格中获取值。我在我的2个循环中使用getCellbyColumnAndRow()->getValue()函数。

$file = 'test.xlsx';
try {
    $inputFileType = PHPExcel_IOFactory::identify($file);
    $objReader = PHPExcel_IOFactory::createReader($inputFileType);
    $objPHPExcel = $objReader->load($file);
    $sheet = $objPHPExcel->getActiveSheet();
} catch(Exception $e) {
    die('Error loading file "'.pathinfo($inputFileName,PATHINFO_BASENAME).'": '.$e->getMessage());
}

// get worksheet dimentions
$higestRow = $sheet->getHighestDataRow();
$highestCol = $sheet->getHighestDataColumn();


//get value from all the cells
for($i = 1; $i <= $higestRow; $i++){
    for($j = 'A'; $j <= $highestCol; $i++){ 
        echo $sheet->getCellByColumnAndRow($j, $i)->getValue();
        echo "</br>";
    }
}

但似乎陷入了无限循环。为什么呢?

此外,当我getCellByColumnAndRow('I', 16);时,我会获得单元格A16中的值。但是当我做getCellByColumnAndRow(8,16)时。我从I16获得了价值。所以这也意味着行索引从1开始,列索引从1开始。

2 个答案:

答案 0 :(得分:1)

这个for循环看起来不对,你正在递增$i而我认为你要增加$j

//for($j = 'A'; $j <= $highestCol; $i++){ 
//---------------------------------^^^^

应该是

for($j = 'A'; $j <= $highestCol; $j++){ 

答案 1 :(得分:1)

我认为行$j++

中应该有for($j = 'A'; $j <= $highestCol; $i++){