问题始于一个非常复杂的工作表,但我将其简化为一个非常简单但仍然存在相同问题的问题。
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