Php excel公式未在保存的电子表格中运行

时间:2014-12-18 15:26:31

标签: php phpexcel

我正在使用php excel codeplex,我正在填写这样一个单元格:

$objWorksheet->setCellValue('B12', "='Other sheet'!D38");

我成功保存文件,当我打开它时,公式就在那里,但它不会渲染计算值。 如果我将公式复制并粘贴到另一个单元格,它运行正常,所以,这不是公式语法的问题。 如何在保存之前强制执行公式?我试过了:

\PHPExcel_Calculation::getInstance($objPHPExcel)->disableCalculationCache();
\PHPExcel_Calculation::getInstance($objPHPExcel)->clearCalculationCache();

没有成功......

3 个答案:

答案 0 :(得分:12)

这是解决问题的示例代码:

$spreadsheet = new \PHPExcel();
$writer = new \PHPExcel_Writer_Excel2007($spreadsheet);

//Do things with the $spreadsheet

//This is the solution, do it before saving
$writer->setPreCalculateFormulas(); 
$writer->save($saving_filepath);

答案 1 :(得分:2)

我添加了此代码,它对我有用。

PHPExcel_Calculation::getInstance($excelObj)->disableCalculationCache();
PHPExcel_Calculation::getInstance($excelObj)->clearCalculationCache();
$writer = PHPExcel_IOFactory::createWriter($excelObj, 'Excel2007');

$writer->setPreCalculateFormulas(true);
$writer->save($output_file);

答案 2 :(得分:0)

对于使用Laravel Excel的用户,可以在select * from `cars` where (name like ? or id = ?) and `cars`.`user_id` = ?" 配置文件中轻松设置导出过程中的计算。只需将选项excel.php设置为true。

calculate