2013-05-08 259 views
1

該問題始於一個非常複雜的工作表,但我將其簡化爲一個非常簡單但仍具有相同問題的工作表。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)

響應值:在Excel中更換 2.1 =IF(B3="","",IF(C8="N",IF(ISERR(VALUE(B3)),0,VALUE(B3)),T(B3)))

在B8文件的公式爲 '= B3' 它完美顯示結果'8'。

響應: =B3

所以,我一定會認爲是公式的一個問題。

函數非常簡單IF,T,VALUE,ISERR。

更改所有雙引號,問題仍然存在。

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

任何想法得到解決方法,這將是值得歡迎的。

韓國社交協會

回答

1

這是因爲(如文檔中列出)的值()函數尚未在PHPExcel計算引擎來實現