メモリ不足にならずに大きな Excel ファイルを効率的に PHPExcel にロードするにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-24 06:53:19
オリジナル
561 人が閲覧しました

How Can I Efficiently Load Large Excel Files into PHPExcel Without Running Out of Memory?

PHPExcel のメモリ不足の問題

PHPExcel を使用して大きな Excel テーブルを読み込むと、十分なメモリ割り当てが許可されているにもかかわらず、メモリが枯渇する可能性があります。この問題を解決するには、メモリ割り当てプロセスを理解することが重要です。

メモリ消費に影響する要因

PHPExcel のメモリ要件は主に、読み込まれたワークシート内のセルの数に依存します。 。平均メモリ使用量はセルあたり約 1k です。したがって、500 万セルのワークブックには約 5GB のメモリが必要になります。

最適化

メモリ消費を軽減するために、いくつかの最適化を実装できます。

  • ロードされるワークシートの制限: ロードのみsetLoadSheetsOnly() を使用して特定のワークシートを読み込みます。
  • 読み取りフィルター: 必要なセルのみを選択する読み取りフィルターを実装します。
  • チャンクでの読み取り: 読み込みワークブックを繰り返し実行して、一度に設定された行数のみをメモリに保持します。 time.
  • Read Data Only: setReadDataOnly(true) を使用して書式設定せずにセル値のみを読み込みます。
  • Cell Caching: セルを圧縮形式または PHP のメモリ外でメモリを削減するfootprint.

追加のヒント

コード内では、$arrayData 配列によってデータが蓄積され、メモリ使用量が悪化する可能性があります。代わりに、中間配列を必要とせずにデータの連想配列を作成できる、PHPExcel の toArray() メソッドまたは新しい rangeToArray() メソッドの利用を検討してください。

以上がメモリ不足にならずに大きな Excel ファイルを効率的に PHPExcel にロードするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート