FC2ブログ

スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

CakePHPでExcel_Reviserを使ってみる

仕事でPHPでExcel扱う必要があったわけですよ。事前にちょろちょろ調べていて、PHPExcelなんてよさげじゃない?ってんで少しずつテストコードとか書いて手順とか確認しつつ本番(=発注)を迎えました。で、いざ使ってみたら、確かに使えるけど、動くけど、クソ遅い。なんか重いとかじゃない。例えば5列×500行程度の、ごくごく普通のシート1枚に値を入れて出力というオペレーションで、ボタン押下から出力まで5分。5秒じゃないよ。300秒ですよ。Webアプリで5分待ちって無理無理。絶対納品できない。件数を増やして2500件程度(これが今回の標準データ数)にしたら15分くらい。とういかタイムアウト。バカ?ねえ、あんたホントに2000年代のコード?大丈夫?というので、真っ青になって、泣きながら探しました。最近泣きながらなにかしてばっかりだな。

で、見つけたのがExcel_Reviser。2008年頃に残念ながら開発が止まってしまったようだけど。しかもオフィシャルで公開停止してるのね。だけどGPLだからね。再配布先から入手したけど恐れることはなし。いろいろドキュメントを見てみると.xlsの出力をする分には十分な機能。x86_64だと動かんという説もあるけど、某所にてパッチも発見したので、まあ、大丈夫かと(この64bitの件で異様に怒ってる人見たけどなんなんだろうね)。で、実際にコード組んで(これがPHPExcelと比較にならないくらい簡潔で嬉しい)試してみる。

同じような条件で2500件出力で約5秒。普通こうでしょう。ねえ。とりあえず空白セルの書式設定とか、テンプレートの結合セルが解除されちゃう件とか扱いが大変なところを補うようにCakePHPのヘルパーとしてヘボな実装が完了したので今度公開します。

Pagination

Trackback

Trackback URL

http://muurimemo.blog.fc2.com/tb.php/9-1ced7d49

Comment

Post Your Comment

コメント:登録フォーム
公開設定

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。