微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

阻止PHPExcel在写入文件时计算值

使用 PHPExcel类在Excel文件中编写数据时.

当作者工作时会发生这种情况,而不是在向单元格添加数据时发生这种情况$this-> sheet-> setCellValue()

Fatal error: Uncaught exception 'PHPExcel_Calculation_Exception' with message 'Adressen!AF20955 -> Formula Error: Unexpected operator '>'' in \Cell.PHP:300 Stack trace: 
#0 \PHPExcel\Worksheet.PHP(754): PHPExcel_Cell->getCalculatedValue()
#1 \PHPExcel\Writer\Excel2007\Worksheet.PHP(373): PHPExcel_Worksheet->calculateColumnWidths()
#2 \PHPExcel\Writer\Excel2007\Worksheet.PHP(80): PHPExcel_Writer_Excel2007_Worksheet->_writeCols(Object(PHPExcel_Shared_XMLWriter),Object(PHPExcel_Worksheet))
#3 \PHPExcel\Writer\Excel2007.PHP(304): PHPExcel_Writer_Excel2007_Worksheet->writeWorksheet(Object(PHPExcel_Worksheet),Array,false)
#4 \excel.PHP(131): PHPExcel_Writer_Excel2007->save('...')
#5 \excel. in \PHPExcel\Cell.PHP on line 300

我从不使用函数PHPExcel_Cell-> getCalculatedValue()写入我的Excel但只使用$this-> sheet-> setCellValue(‘A1’,$value).

我不需要在Excel文件中计算任何公式.只需将DB2数据导出到此文件即可.

很明显,$value包含公式字符,如= – > < (因为单元格AF20955确实导致了>的致命错误)但是这不应该被解释为公式,而只是作为字符串的一部分.我该如何解决这个问题?

保存时调用PHPExcel计算引擎,但您可以通过调用告诉编写者不要应用它
$objWriter->setPreCalculateFormulas(false);

在保存之前

通过调用setCellValue()或类似设置单元格值时,PHPExcel将尝试使用值绑定器识别数据类型并在内部(与MS Excel完全相同)进行相应设置.包含=作为第一个字符的单元格将被视为公式.

如果要确保将它们视为字符串而不是公式,那么最简单的方法是使用setCellValueExplicit().

原文地址:https://www.jb51.cc/php/130712.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐