2016-09-27 1 views
0

오래된 먼지가 많은 코드를 유지하려고하면 import symfony 명령에서 phpexcel에 문제가 있습니다.phpexcel을 사용하여 다른 시트의 수식을 읽으십시오.

라이브러리가 활성 시트와 동일한 문서의 다른 시트에 연결된 수식을 올바르게 계산할 수없는 것 같습니다. 헤더와

try { 
    $inputFileType = \PHPExcel_IOFactory::identify($filePath); 
    $objReader = \PHPExcel_IOFactory::createReader($inputFileType); 
    $objReader->setLoadSheetsOnly(array($this->getListName(), 'Template Info')); 
    $objReader->setIncludeCharts(true); 

    $objPHPExcel = $objReader->load($filePath); 
} catch (\Exception $e) { 
    throw new \Exception("Invalid file"); 
} 
$sheet = $objPHPExcel->getActiveSheet(); 
$highestRow = $sheet->getHighestRow(); 
$highestColumn = $sheet->getHighestColumn(); 

$fieldsNumber = array(); 
$filterData = array(); 
$templateIdList = array(); 

for ($i = 1; $i <= $highestRow; $i++) { 
    $rowData = $sheet->rangeToArray('A' . $i . ':' . $highestColumn . $i, null, true, false); 
    $rowData = $rowData[0]; 
    var_dump($rowData); 
} 

첫 번째 줄이 제대로 읽을 수 있지만 나머지는되지 않습니다 :

[PHPExcel_Calculation_Exception] 
Price Template Map!B2 -> Invalid cell coordinate A 

내 코드는 다음과 같습니다

내가 오류입니다.

내 공식은 다음과 같습니다

=VLOOKUP(A18,'Template Info'!A:C,3,FALSE)"

는 당신이 그것을 필요로하는 경우에 저에게 더 많은 정보를 주저하지 마십시오!

미리 감사드립니다. :)!

답변

2

문제는 열 참조 경우 : PHPExcel 계산 엔진 (심지어 다른 워크 시트) 범위의 참조를 지원하지만, 행 없거나 컬럼

그래서

=VLOOKUP(A18,'Template Info'!A1:C100,3,FALSE) 

유효한 것이지만,

를 참조
=VLOOKUP(A18,'Template Info'!A:C,3,FALSE) 

계산할 수 없습니다.

0

getCalculatedValue() 기능을 사용하십시오.

+0

문제는 rangeToArr입니다. ay 세 번째 매개 변수는 라이브러리가''getCalculatedValue()''를 사용할지를 알기 위해 사용되는 부울 값입니다. 현재 true로 설정되어 있습니다. false로 설정하면 원시 형식으로 수식을 받게됩니다. – Kern

+0

그리고 왜 true로 설정하지 않습니까? –

+0

사실로 설정되어 있습니다. – Kern