PHPExcelはPHPでExcelのブックやシートを読込み、作成、出力できるライブラリです。
CSVではなくExcelで出力することで
はじめから可視化しやすい形で出力できるのですが、
データ量やシートの複雑さによっては
出力にかなり時間がかかるようになってしまうことがあります。
もし何も考えずにループの中で
1 |
insertNewRowBefore |
や
1 |
getStyle |
を多用しているならば、チューニングによって
劇的に速くなるかもしれません。
例えば、帳票の出力などでは動的に行が増える場合が多いと思いますが、
ループの中で
1 |
insertNewRowBefore(2, 1) |
のように1行ずつ追加していくような処理は、
かなりパフォーマンスが悪いようです。
そういうときには、追加する行数を計算してから
1 |
insertNewRowBefore(2, 行数) |
を1回実行することでパフォーマンスが向上します。
もし行数を計算するためだけに追加でループさせる必要があったとしても
1行ずつ
1 |
insertNewRowBefore(2, 1) |
を実行するよりははるかに速い場合が多いようです。
また、
1 |
getStyle |
も、もしループの中で同じスタイルを1行ずつ実行しているのならば、
できる限りループの外で一括で実行することで
劇的にパフォーマンスが向上する可能性があります。
私の場合、実際にExcelで帳票を出力する場面があったのですが、
何も考えずに実装したときと、上記のとおりチューニングした場合とでは
10倍くらいの差がありました。