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

时间:2015-08-05 09:02:14

标签: phpexcel

有人可以告诉我为什么会收到此错误?

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

生成此错误的代码:

$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

1 个答案:

答案 0 :(得分:3)

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

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

此行为在默认单元格活页夹(PHPExcel/Cell/DefaultValueBinder.php)中定义。

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

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

相关问题