首页 > 解决方案 > PHPExcel Worksheet!A2 -> 公式错误:意外,

问题描述

在 PHPExcel 错误Worksheet!A2 -> Formula Error: Unexpected 上花费了几个小时后,我发现

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

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

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

标签: escapingformulaphpexcel

解决方案


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

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

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

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

推荐阅读