加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

PHPExcel在解析xlsx文件中的公式时返回零“0”

发布时间:2020-12-13 15:58:35 所属栏目:PHP教程 来源:网络整理
导读:我想通过 PHP得到Excel函数的计算值.如果输入是,则简单 '=MAX(2,3,4,6)' 然后输出将是 6 为此,我用PHPExcel Library制作了两个php脚本.一个脚本将采用该公式/函数,并将生成xlsx文件. 第二个脚本将读取生成的xlsx文件,并将给出给定公式的计算值. 这个过程似乎
我想通过 PHP得到Excel函数的计算值.如果输入是,则简单

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

然后输出将是

6

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

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

这个过程似乎没问题,但它无法为一些功能带来价值.比如

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

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

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

enter image description here

但是第二个脚本显示无效结果,它只显示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()

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读