PHPExcel バージョン: 1.7.6
特別な設定を行わなくても、phpExcel は読み取ったセル情報をメモリに保存します。さまざまなキャッシュ方法を設定できます。 PHPExcel_Settings::setCacheStorageMethod()
を通じて、メモリ消費量を削減するという目的を達成しました。
推奨されるビデオ チュートリアル: php 入門チュートリアル
解決策:
1. セル データをシリアル化してメモリに保存します 中
PHPExcel_CachedObjectStorageFactory::cache_in_memory_serialized;
2. セルをシリアル化し、Gzip 圧縮してメモリに保存します。
PHPExcel_CachedObjectStorageFactory::cache_in_memory_gzip;
3. 一時的にディスク ファイルにキャッシュし、速度を向上させます。遅くなる可能性があります
PHPExcel_CachedObjectStorageFactory::cache_to_discISAM;
4. php://temp
PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp;
5. memcache に保存します
PHPExcel_CachedObjectStorageFactory::cache_to_memcache;
$cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_memcache; $cacheSettings = array( 'memcacheServer' => 'localhost', 'memcachePort' => 11211, 'cacheTime' => 600 ); PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings);
次のように、new PHPExcel()
の前に追加されることに注意してください:
require_once APPPATH .'third_party/PHPExcel/PHPExcel.php'; $cacheMethod = PHPExcel_CachedObjectStorageFactory::cache_to_phpTemp; $cacheSettings = array('memoryCacheSize'=>'16MB'); PHPExcel_Settings::setCacheStorageMethod($cacheMethod, $cacheSettings); $objPHPExcel = new PHPExcel();
推奨関連記事チュートリアル: php チュートリアル#
以上がphpexcelにビッグデータをインポートする際のメモリオーバーフローの解決策は何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。