2017-12-11 23 views
-2

Excel의 셀에 수식이 들어있을 때 계산 된 값으로 Excel을 읽어야합니다.수식을 가진 셀을 읽는 동안 Excel에서 값을 읽습니다. 작동하지 않음

예 : '(! A3 #의 REF, 2,0) = VLOOKUP + ","= 966 + 955 + 988 + 818 + 700 + 660 + 573 "

문제점 : PHPExecel 결과에서 수식을 읽고 나는 Excel에서 계산 된 값을 원합니다.

code에 대한 도움말 및 링크를 참조하십시오.

내가 사용 PHPExcel - 1.8 https://github.com/PHPOffice/PHPExcel/tree/1.8/Classes

임 점점 오류 로 https://ibb.co/cHb2Kb

if(file_exists($file_path)){ 
    //load the excel library 
    $CI->load->library('excel'); 
    //read file from path 
    $objPHPExcel = PHPExcel_IOFactory::load($file_path); 
    //get only the Cell Collection 
    $cell_collection = $objPHPExcel->getActiveSheet()->getCellCollection(); 
    //extract to a PHP readable array format 
    foreach ($cell_collection as $cell) { 
     $column = $objPHPExcel->getActiveSheet()->getCell($cell)->getColumn(); 
     $row = $objPHPExcel->getActiveSheet()->getCell($cell)->getRow(); 
     $data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getValue(); 
     if(strstr($data_value,'=')==true){ 
      // $data_value = $objPHPExcel->getActiveSheet()->getCalculatedValue($cell)->getValue(); 
     } 
     //header will/should be in row 1 only. of course this can be modified to suit your need. 
     if ($row == 1) { 
      $header[$row][$column] = $data_value; 
     } else { 
      $arr_data[$row][$column] = $data_value; 
     } 
    } 
    //send the data in an array format 
    $data['header'] = $header; 
    $data['values'] = $arr_data; 
    return $data; 
} 
+0

등 간단하게

$data_value = $objPHPExcel->getActiveSheet()->getCell($cell)->getCalculatedValue(); 

하지 아무것도입니다 ..... PHPExcel Documentation에 설명되어 당신 필요한 것. 현재 작성된 내용이므로 귀하가 원하는 내용을 정확하게 말하기는 어렵습니다. 이 질문에 대한 설명은 [How to Ask] (https://stackoverflow.com/help/how-to-ask) 페이지를 참조하십시오. – GYaN

+0

질문에 코드를 게시하십시오. 외부 소스를 좋아하지 않아 코드를 이미지로 게시하지 마십시오. –

+0

@GyandeepSharma PHPExcel 및 codeigniter를 사용하여 Excel 시트를 읽으려고합니다. Excel 시트에는 수식이 들어 있습니다. Excel에서 셀에서 수식을 보여주는 것을 읽었을 때 ** 계산되지 않은 값 **. 계산 된 값이 필요해. –

답변

0

세포가 단순히 getValue()보다 수식을 포함하기위한 세포의getCalculatedValue() 방법을 사용하는 것이 좋습니다; 또는 워크 시트에 대해 getCalculatedValue()으로 전화를 시도하는 중입니다.

정확히 무엇을 강조하기 위해 추가 정보를 추가하십시오 심지어 원격으로

$data_value = $objPHPExcel->getActiveSheet()->getCalculatedValue($cell)->getValue(); 
+0

답장을 보내 주셔서 감사합니다. 하지만 VLOOKUP을위한 SUM이 아닌 경우에만 작동합니다. #REF를 보여주는! vlookup 수식 –

+0

VLOOKUP의 범위 인수는 게시 한 수식에서 '#REF!'이며, 따라서 '#REF!' –