在单元格中输入SUM函数时发生PHP Excel错误


PHP Excel Error when entering SUM function to a cell

当用sum公式生成EXCEL文件时,我遇到了这个问题。

PHP代码:

$objPHPExcel->getActiveSheet()->setCellValue("I".$fila,"=SUMA(I17:I".($fila-1).")");

注:SUMA在西班牙语中是"sum"。。类似于西班牙语配置

当我打开Excel文件时,它显示的值为:#######

但这个公式是正确的,当我在公式后面输入enter时,它会被重新计算并更正。

PHPExcel内部使用英语:如果公式函数使用西班牙语,则必须将local设置为西班牙语;然后可以将它们翻译成英文以注入细胞中。请参阅开发人员文档的第4.6.5节(标题为"公式的区域设置")。

$locale = 'es';
$validLocale = PHPExcel_Settings::setLocale($locale);
if (!$validLocale) {
    echo 'Unable to set locale to '.$locale." - reverting to en_us<br />'n";
}
$formula = "=SUMA(I17:I".($fila-1).")";
$internalFormula = 
    PHPExcel_Calculation::getInstance()->translateFormulaToEnglish($formula);
$objPHPExcel->getActiveSheet()->setCellValue("I".$fila, $internalFormula);

您可以使用英语中的公式函数。

$objPHPExcel->getActiveSheet()->setCellValue("I".$fila,"=SUM(I17:I".($fila-1).")");

在excel中打开文档,您可以看到计算的总数,并在函数公式"=SUMA()"

只有一个更正:

$internalFormula=PHPExcelCalculation::getInstance()->_translateFormulaToEnglish($formula);