3

基本上,由于内存问题(不断耗尽),我试图启用单元缓存,它是一个相当大的电子表格。从我读过的内容来看,在线单元缓存是一个很好的方法

从我在网上找到的示例来看,它看起来像这样

单元缓存和内存泄漏

stackoverflow - 修复内存错误

$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

我想我只是初始化错了吗?

4

1 回答 1

10

它在开发人员文档的第 4.2.1 节中进行了描述:标题为“单元缓存”的部分;并且您需要在实例化或加载 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();

and the new PHPExcel object will automatically use the configured cache setting (ie phptemp)

于 2013-02-01T09:27:05.347 回答