ホームページ  >  記事  >  バックエンド開発  >  phpspreadsheet を使用して大きな Excel ファイルを切り取る方法 (コード付き)

phpspreadsheet を使用して大きな Excel ファイルを切り取る方法 (コード付き)

不言
不言オリジナル
2018-08-06 10:19:043281ブラウズ

この記事では、phpspreadsheet を使用して大きな Excel ファイルを切り出す方法 (コード付き) を紹介します。一定の参考値があります。困っている友人が参考にすることができます。お役に立てれば幸いです。

背景:

phpspreadsheet を使用すると Excel ファイルを簡単に解析できますが、phpspreadsheet のメモリ消費量も比較的多くなります。5M 近くの純粋なテキストを解析しようとしましたが、Excel のメモリ使用量は超えてしまいます。デフォルトの最大メモリは 128M です。
もちろん、これはメモリ サイズを調整することで解決できますが、同時実行の量が大きい場合はより危険です。そこで今日は、phpspreadsheet を使用して Excel ファイルを切り取る 2 番目の方法を紹介します。これは時間をスペースと交換する方法なので、適時性の低い要件に一般的に使用できます。

方法:

まずphpspreadsheet公式サイトで提供されている関数readCellを置き、この関数を使って切り出しを行います。

最初に Excel ファイルを事前に読み込みます。主にすべてのワークシートとワークシート内のデータ行数を取得します。この段階では、readCell メソッドは常に false を返します。readCell が提供するワークシートを記録するだけで済みます。インチとデータ行の数。

次のステップは、取得したレコードを分析し、元の Excel データの行数をデータの各部分にロードする必要があるかを決定することです。内容の混乱を避けるために、カットしないでください。 2 つのワークシートの内容をまとめます。

最後のステップは、分析されたデータをループし、readCell を再度使用してデータの各部分を取得することです。ファイルを読み取るたびに、disconnectWorksheets メソッドを使用して phpspreadsheet のメモリをクリーンアップする必要があることに注意してください。 。

私自身のテストの結果、この方法を使用して 5M Excel ファイルを解析すると、必要なメモリは平均 21M だけであることがわかりました。

コード:

https://github.com/wangyelou/Tools/tree/master/CutExcel

おすすめ関連記事:

PHP を使用して Excel ファイルの内容を読み取り、セル データを取得する方法

PHP での検証コードとサーバー側の検証コードを実装する手順

以上がphpspreadsheet を使用して大きな Excel ファイルを切り取る方法 (コード付き)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。