我想通过
PHP得到Excel函数的计算值.如果输入是,则简单
'=MAX(2,3,4,6)'
然后输出将是
6
为此,我用PHPExcel Library制作了两个php脚本.一个脚本将采用该公式/函数,并将生成xlsx文件.
第二个脚本将读取生成的xlsx文件,并将给出给定公式的计算值.
这个过程似乎没问题,但它无法为一些功能带来价值.比如
"=INDEX({"zz","yy","xx"},2)"
和
"=INDEX({"zz","yy","xx"},MATCH(MAX({11,22,34}),{11,23,34}))"
我的第一个脚本可以生成xlsx文件及其公式的结果.
但是第二个脚本显示无效结果,它只显示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()