【问题标题】:PHPEXCEL formula calculation issuePHPEXCEL公式计算问题
【发布时间】:2013-05-08 20:48:12
【问题描述】:

问题始于一个非常复杂的工作表,但我将其简化为一个非常简单但仍然存在相同问题的问题。

PHPExcel 不计算公式,但如果我更改为一个简单的公式 (=B3),它就可以工作。

getvalue()返回的公式是

=IF(B3="","",IF(C8="N",IF(ISERR(VALUE(B3)),0,VALUE(B3)),T(B3)))

我的代码。

require_once dirname(__FILE__) . '/../phpxl/Classes/PHPExcel.php'; 
set_include_path(get_include_path() . PATH_SEPARATOR . '/../phpxl/Classes/'); 
$template = "test.xlsx"; 
$objReader = PHPExcel_IOFactory::createReader('Excel2007'); 
$objPHPExcel = $objReader->load($template); 
$objPHPExcel->getActiveSheet()->getCell('B3')->setValue(8); 
$result = $objPHPExcel->getActiveSheet()->getCell('B8')->getCalculatedValue(); 
$result1 = $objPHPExcel->getActiveSheet()->getCell('B8')->getValue(); 
echo $result.'<br>'; 
echo $result1.'<br>';

我将 B3 单元格的值设置为 8,在 excel 中执行此操作会在 B8 处计算相同的值。

C8 有一个“N”。

但是使用 phpexcel,我总是得到使用 (2.1) 保存的值

回应: 2.1 =IF(B3="","",IF(C8="N",IF(ISERR(VALUE(B3)),0,VALUE(B3)),T(B3)))

在excel文件中将B8处的公式替换为“=B3”,它可以完美地显示结果“8”。

回应: 8 =B3

所以我必须认为这是公式的问题。

函数很简单,IF、T、VALUE、ISERR。

更改所有双引号,问题仍然存在。

=IF(ISBLANK(B3),NA(),IF(C8="N",IF(ISERR(VALUE(B3)),0,VALUE(B3)),T(B3))) 

欢迎任何解决此问题的想法。

Tks

【问题讨论】:

    标签: phpexcel


    【解决方案1】:

    这是因为(如文档中所列)VALUE() 函数尚未在 PHPExcel 计算引擎中实现

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多