PHPEXCEL公式计算问题

时间:2013-05-08 20:48:13

标签: phpexcel

问题始于一个非常复杂的工作表,但我把它简化为一个非常简单的但仍然有同样的问题。

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))) 

任何想要获得解决方法的建议都将受到欢迎。

韩国社交协会

1 个答案:

答案 0 :(得分:1)

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