PHPExcel在parsingxlsx文件中的公式时返回零“0”

我想通过PHP获取Excel函数的计算值。如果input是简单的

'=MAX(2,3,4,6)' 

那么输出将是

  6 

为此,我用PHPExcel Library制作了两个php脚本。 一个脚本将采取该公式/function,并将生成一个xlsx文件。

第二个脚本将读取生成的xlsx文件,并给出给定公式的计算值。

这个过程似乎没问题,但它不能为一些function产生价值。 如为

 "=INDEX({"zz","yy","xx"},2)" 

 "=INDEX({"zz","yy","xx"},MATCH(MAX({11,22,34}),{11,23,34}))" 

我的第一个脚本可以生成xlsx文件及其公式的结果。

在这里input图像说明

但第二个脚本显示无效的结果,它只显示0。

这是我的第一个脚本http://pastebin.com/vCErW5wf

这是我的第二个剧本

 require_once 'a/Classes/PHPExcel/IOFactory.php'; require_once 'a/Classes/PHPExcel.php'; $inFile = 'index.xlsx'; $objReader = PHPExcel_IOFactory::createReader('Excel2007'); $objReader->setReadDataOnly(true); $objPHPExcel = $objReader->load($inFile); $value = $objPHPExcel->setActiveSheetIndex(0)->getCell('C5')->getOldCalculatedValue(); echo $value; 

提前致谢 。

使用getOldCalculatedValue()将返回在MS Excel中生成的公式单元格计算的最后一个值(即使这样,也可以在MS Excel中禁用计算,然后不会设置该值)。 由PHPExcel生成的文件不会填充这个值,所以它只会提供默认值0。

一般来说,当您尝试计算公式值时,应始终使用getCalculatedValue()