phpでexcel出力の要件があり、PhpSpreadsheet を使用して10万件ほどのレコードを出力しようしたのだが
1時間たっても終了しません・・・。
ソースを見たところ、全てのデータをチェックして、文字列なのか数値なのかなどをチェックして
セルのフォーマットを決めているのでここで時間がかかってんのかなと思った。
これでは、要望を満たせないので、Githubで検索。
するとphp_xlsxwriterを発見。
https://github.com/mk-j/PHP_XLSXWriter
100000行を2.7sで出力、メモリーが0MBだと!!
うさんくさいけど試してみました。
はったりじゃなかった!!!
10万件のレコードを約10秒ほどで出力できた。
サンプルの実行速度と違うのはカラムの数の所為だろう
もともとCSV出力していたのを顧客の要望でExcelで出したいとのことで
レスポンスも問題ないのでPHP_XLSXWriterを採用することにしました。
codeigniterでのライブラリサンプル
0件のコメント