2011年11月9日星期三

PHPExcel 效能提升%300方法

公司有一個schedule task是用PHPExcel去export一個Excel 檔案再發送給其他部門,一直困擾很久的問題是效能問題和失效問題。
雖然我已經優化PHP程式本身和在php.ini把最大執行時間和Memory Limit設定成一定數值:
max_execution_time =3600;
memory_limit = 1024M;

但這只是解決PHP程式有機會死於memory用量過多或execution time過久而已。

最後在宏宏網海中,找到答案。
原來PHPExcel有一項設定"setPreCalculateFormulas()",沽名思義,可以略省計算Cell中的Formula。
以我的情況,我最後會輸出約500 rows x 30 columns的Excel,沒有任何formula的話,把它設定成False,真實測試後,效能的確可以大大提升超過%300。
方法:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->setPreCalculateFormulas(false);

沒有留言:

發佈留言