escaping - PHPExcel Worksheet!A2 -> 公式错误:意外,
问题描述
在 PHPExcel 错误Worksheet!A2 -> Formula Error: Unexpected 上花费了几个小时后,我发现
$sheet->setCellValue($col . $row, $value);
如果我尝试将字符串=ER=, sro插入单元格,则会引发此错误。当我首先删除 = 签名时,它开始工作。不管它看起来多么奇怪 =ER= 是真实公司的名称。我想把它作为一个字符串写到单元格中。
问题是哪些标志以及应该如何转义以避免 PHPExcel 的这种行为?我预计 PHPExcel 会逃脱这种情况。就像我将数据发送到数据库一样...
解决方案
您需要用单引号开始单元格,'
以避免将前导等号视为总和的开始。利用:
$sheet->setCellValue($col . $row, "'" . $value);
如果引用导致其他值(如日期和数字)出现问题,您可以测试$value
它是否以开头=
,如果确实添加了单引号,则不要理会它。
$sheet->setCellValue($col . $row,(substr($value,0,1) == '=' ? "'" . $value : $value));
推荐阅读
- java - facebook webhook“错误无法验证 URL。请重试。” 没有收到请求
- javascript - 在网站上设置输入值,点击时将其重置
- javascript - 如何在javascript ajax函数中显示记录更新数据直到下一个事件?
- r - 在 Surv(start_time, end_time, new_death) 中:停止时间必须 > 开始时间,创建了 NA
- etl - Talend Open Studio:带分号的分隔文件和带引号的标题
- awk - 使用 sed 或 awk 更改字符串
- c - C - 循环后释放字符串
- jquery - Bootstrap 4 和“折叠”功能的问题
- javascript - Vue:更改 v-model 中使用的数据属性的值不会呈现新设置的值
- c# - 如何使用 2D SpriteShape 解决统一 2019.1.0f2 错误?