当我尝试使用公式设置单元格的值时,例如:setCellValue('C1','= A1 + B1'),生成的文件没有单元格的计算值。
我有以下脚本:
<?php
require_once '../vendor/autoload.php';
date_default_timezone_set('America/Sao_Paulo');
$objPHPExcel = new PHPExcel();
$objPHPExcel->setActiveSheetIndex(0);
$objPHPExcel->getActiveSheet()->setCellValue('A1', 5)
->setCellValue('B1', 10)
->setCellValue('C1', '=A1+B1');
echo $objPHPExcel->getActiveSheet()->getCell('C1')->getCalculatedValue() . PHP_EOL;
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
$objWriter->save('a.xlsx');
当我用libreoffice打开a.xlsx时,单元格C1显示字符串“0”。奇怪的是,当我点击单元格时,它实际显示“= A1 + B1”,但不是最终结果。
如何让PHPExcel正确使用公式?
答案 0 :(得分:5)
我对LibreOffice 5.0.5.2也有同样的问题。
更改LibreOffice Calc中的以下选项对我有用:
发现 https://ask.libreoffice.org/en/question/12165/calc-auto-recalc-does-not-work/