用PHPExcel导出数据都是直接输出内容,平时没有出现什么问题。今天导出突然出现,导出的时候PHPExcel抛出异常:
用的laravel框架
C361 -> Formula Error: An unexpected error occured
通过错误提示信息可以看见, 是在C列361行,发生错误,肯定是361行数据有些特殊。
造成这种原因的是输出的内容中大多数开头以'=',造成PHPExcel解析的时候当成这个单元格的值是由其他单元格计算出来的,
后面需要跟着一个合法表达式。如果不是这样,应该在程序中过滤掉。
通过判断代码:
if( $item && strpos($item,'=') === 0 ){ $item = "'".$item; }
$PHPExcel->getActiveSheet()->setCellValue($cellIndex.$num, $item);
附图:
PHPExcel在导出含有以等号开头的数据时会将其误认为公式,导致异常。本文介绍了一种解决方案,通过在数据前添加单引号来避免这一问题。

670

被折叠的 条评论
为什么被折叠?



