PHPExcel工作表!A2 ->公式错误:意外 ,



在PHPExcel错误工作表上花费了几个小时之后!A2 ->公式错误:出乎意料,我发现

$sheet->setCellValue($col . $row, $value);

如果我尝试将字符串=ER=, s.r.o. 插入单元格,则会给我这个错误。当我首先删除=签名时,它开始工作。无论它看起来多么奇怪=ER=是真实公司的名称。我想把它作为一个字符串写到单元格中。

问题是应该转义哪些标志以及如何转义以避免PHPExcel的这种行为?我预计PHPExcel会逃脱这种情况。就像我将数据发送到数据库一样...

您需要以单引号'开始单元格,以避免将前导等号视为总和的开头。用:

$sheet->setCellValue($col . $row, "'" . $value);

如果引号导致日期和数字等其他值出现问题,您可以测试$value以查看它是否以=开头,如果它确实添加了单引号,否则就不要管它。

$sheet->setCellValue($col . $row,(substr($value,0,1) == '=' ? "'" . $value : $value));

正确的解决方案是使用 setCellValueExplicit 函数:

文档包括以下示例:

$objPHPExcel->getActiveSheet()->setCellValueExplicit(
'A8', 
"01513789642",
PHPExcel_Cell_DataType::TYPE_STRING
);

最新更新