将SUM函数输入单元格时出现PHP Excel错误

时间:2013-08-11 21:56:21

标签: php sum formula phpexcel

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

PHP代码:

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

注意:SUMA是西班牙语中的“sum”..就像西班牙语配置一样

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

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

3 个答案:

答案 0 :(得分:2)

PHPExcel在内部使用英语:如果您的公式函数使用西班牙语,则必须将本地语言设置为西班牙语;然后可以将它们翻译成英文以注入单元格。请参阅开发人员文档的第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);

答案 1 :(得分:1)

您可以使用英语中的公式功能。

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

在excel中打开文档,你可以看到总计算和函数公式“= SUMA()”

答案 2 :(得分:0)

只有更正:

$ internalFormula =     PHPExcel_Calculation ::的getInstance() - &GT; _translateFormulaToEnglish($式);