私のxlsxファイルのセルから値を取得しようとしています。私の2つのループの中でgetCellbyColumnAndRow()->getValue()
機能を使用しています。私のforループでセルの値を取得します。無限ループで固まってしまう
$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
が存在すべきであると仮定($のJ = 'A'; $ J <= $ highestCol; $ iが++){':偶数と'$ i ++'を '$ j ++'に修正すると、 '$ highestCol'が' Z'より大きい場合、これは無限ループになります。 '!== $ highestCol'を使う必要があります。あなたのループの前に '$ highestCol'(最終列を得るために) –