【发布时间】:2014-03-03 15:55:11
【问题描述】:
当我启用缓存选项以提高内存使用率时:
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '32MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
我收到一个致命错误:
Fatal error: Uncaught exception 'Exception' with message 'Serialization of 'SimpleXMLElement' is not allowed' in /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php:65 Stack trace: #0 /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php(65): serialize(Object(PHPExcel_Cell)) #1 /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php(85): PHPExcel_CachedObjectStorage_PHPTemp->_storeData() #2 /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/Worksheet.php(1136): PHPExcel_CachedObjectStorage_PHPTemp->addCacheData('BN21', Object(PHPExcel_Cell)) #3 /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/Reader/Excel2007.php(881): PHPExcel_Worksheet->getCell('BN21') #4 /Applications/MAMP/htdocs/XXXX/engine.php(85): PHPExcel_Reader_Excel2007->load('XXXX.xlsx') #5 {main} thrown in /Applications/MAMP/htdocs/XXXX/Classes/PHPExcel/CachedObjectStorage/PHPTemp.php on line 65
有没有办法修复这个错误?
【问题讨论】:
-
假设您使用的是 1.7.9 版本;这是否仍然是新版本 1.8.0 的问题,该版本修复了 xlsx 阅读器的一些 SimpleXMLElement 问题
-
@MarkBaker 是的,升级到 1.8.0 我得到了同样的信息。
-
您能否提供一个演示此问题的示例电子表格文件,或说明用于创建该文件的应用程序和版本
-
@MarkBaker 我无法为您提供示例电子表格,因为它是机密的,但该文件是在 Excel 2007 中创建的,它是一个 xlsx 文件。
-
遗憾的是,它根本没有缩小范围,因为我测试了数百个 xlsx 文件;但您确定它是使用 MS Excel 2007 版创建的(不仅仅是因为文件扩展名?)
标签: php phpexcel spreadsheet phpexcelreader