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

标签 php excel excel-formula phpexcel

我想通过 PHP 获取 Excel 函数的计算值。只要输入是

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

那么输出就是

 6

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

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

这个过程看起来不错,但它无法为一些功能产生值(value)。比如对于

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

"=INDEX({"zz","yy","xx"},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()

关于PHPExcel 在解析 xlsx 文件中的公式时返回零 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33186926/

相关文章:

excel-formula - Excel : Leading Zeros on Dates.。公式为我做?

php - 在 PHP 中调用 Go RPC 套接字方法

python win32com excel边框格式化

Excel VBA 组合框禁用问题

vba - Excel VBA : MoviesByGenre Function

algorithm - 计算设置了 N 或更多位的行数

php - 在多线程之前在长时间运行的后台 shell 脚本中传递数组

php - 如何将 OAuth 与 PHP 和 cURL 结合使用?

PHP move_uploaded_file() 失败,我不知道为什么

vba - "Dim myarray() as String"VS "Dim myarray() as Variant"