首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP致命错误:未捕获异常'PHPExcel_Calculation_Exception‘

PHP致命错误:未捕获异常'PHPExcel_Calculation_Exception‘
EN

Stack Overflow用户
提问于 2015-08-05 17:02:14
回答 1查看 6.6K关注 0票数 3

有人能告诉我为什么会出现这个错误吗?

代码语言:javascript
复制
PHP Fatal error:  Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Worksheet!E48 -> Formula Error: An unexpected error occured' in PHPExcel/1.8.0/Classes/PHPExcel/Cell.php:300
Stack trace:
#0 PHPExcel/1.8.0/Classes/PHPExcel/Writer/Excel5/Worksheet.php(460): PHPExcel_Cell->getCalculatedValue()
#1 PHPExcel/1.8.0/Classes/PHPExcel/Writer/Excel5.php(187): PHPExcel_Writer_Excel5_Worksheet->close()
#2 export/the_script.php(98): PHPExcel_Writer_Excel5->save('the_export.xls')
#3 {main}
  thrown in PHPExcel/1.8.0/Classes/PHPExcel/Cell.php on line 300

生成此错误的代码:

代码语言:javascript
复制
$excel = new PHPExcel();
$excel->setActiveSheetIndex(0);
$R = $db->query("SELECT col1, col2, col3 from table1");
while($row = $R->fetch(Zend_Db::FETCH_NUM)) {
    $excel->getActiveSheet()->fromArray($row, false, 'A'.$i);
    $i++;
}
$excelWriter = PHPExcel_IOFactory::createWriter($excel, 'Excel5');
$excelWriter->save('the_export.xls');

如你所见,没有公式,什么都没有...简单地将数据库中的数据转储到excel文件中...运行PHP 5.3.2

EN

回答 1

Stack Overflow用户

发布于 2015-08-05 21:52:56

我猜从您的数据库中检索到的一个值以=符号开头,在这种情况下,PHPExcel将“猜测”它应该是一个公式,并将其存储为公式。

如果您的值以不是公式的=开头,那么您需要告诉PHPExcel它是一个字符串,并且应该这样存储它。

此行为在默认单元绑定器(PHPExcel/Cell/DefaultValueBinder.php)中定义。

如果希望强制PHPExcel将这些值存储为字符串,则可以使用setCellValueExplicit()方法(默认情况下强制执行字符串)

或者,您可以编写自定义值绑定器并应用它,而不是应用缺省值绑定器

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31827960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档