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();

新しい PHPExcel オブジェクトは、構成されたキャッシュ設定 (つまり、phptemp) を自動的に使用します。

于 2013-02-01T09:27:05.347 に答える