gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-10-31 23:38:48 28 4
gpt4 key购买 nike

我想通过 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/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com