タグ

ブックマーク / blog.dksg.jp (1)

  • 【PHP】PHPExcelがループ内でメモリを使いすぎる

    PHPExcelを使って、ループしながら帳票をシートに書き出しているときにあまりにメモリを使うのでいろいろ調査したメモ。 処理の流れとしては 元になるエクセルのテンプレートファイルを読み込み 最初のシートを非表示にしておく 最初のシートをコピーして帳票を描画 2ページ以降も最初のシートをコピーして追加 ファイルとして書き出し ここまでを必要な分だけループして、出来たエクセルをzip形式で圧縮してダウンロード。 「シートをコピーして追加する」の処理がメモリを大量に消費する。コピーするごとにメモリ消費量が倍になっていくみたい。 なので、PHP-Excelで「シートをコピーして追加する」はやらない方がいい。追加したいタイミングでテンプレートファイルを読み込んで追加すると余計なメモリをわない。 require_once(PW_VENDORS_DIR ."/PHPExcel/Classes/PHP

  • 1