基本上我试图通过内存问题启用单元缓存(不断耗尽)其相当大的speadsheet。从我在网上看到的细胞缓存是一个很好的方法
从我在网上找到的例子看起来像这样
stackoverflow - fix memory error
$oExcel = new PHPExcel();
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '512MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
上面的问题是我没有用设置设置excel对象吗?
$oExcel->setCacheStorageMethod($cacheMethod,$cacheSettings); // this returns method not found error
我认为我刚开始做错了吗?
答案 0 :(得分:10)
开发人员文档的第4.2.1节描述了:标题为“Cell Caching”的部分;并且您需要在实例化或加载PHPExcel对象之前设置 之前的单元格缓存。
setCacheStorageMethod()不是PHPExcel类的方法,因为您尝试在此行中使用:
$oExcel->setCacheStorageMethod($cacheMethod,$cacheSettings);
使用
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
$cacheSettings = array( 'memoryCacheSize' => '512MB');
PHPExcel_Settings::setCacheStorageMethod($cacheMethod,$cacheSettings);
$oExcel = new PHPExcel();
并且新的PHPExcel对象将自动使用配置的缓存设置(即phptemp)
答案 1 :(得分:2)
Here you can find similar question with quite extensive answer包含 setCacheStorageMethod 的工作示例。希望它有所帮助!