2017-02-10 4 views
0

내 xlsx 파일의 셀에서 값을 가져 오려고합니다. 나의 2 개의 고리 안에 getCellbyColumnAndRow()->getValue() 기능을 사용하고있다.for는 my 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.

+0

'에 대한 ($ j를 = 'A'; $ j에 <= $ highestCol; $ 내가 ++) {': 심지어와 '$ i ++'를'$ j ++'문제로 고치면,'$ highestCol'이'Z'보다 큰 경우 무한 루프가 생깁니다 .... 이전에 증가한'! == $ highestCol'을 사용해야합니다 '$ highestCol'을 반복하기 전에 (마지막 열을 얻도록) –

답변

1

로 시작, 당신은 $i을 증가하고 당신이 $j

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

이이어야한다 증가하는, 표준 생각

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

나는 행에 $j++이 있어야 가정 for($j = 'A'; $j <= $highestCol; $i++){

관련 문제