YourKit Java Profiler 8.0 released

YourKitのv8.0かぁ。v7.5もアップグレードしたものの,ほとんど使わずじまいだったから,今回は見送りだな。
ちょっと惜しい気もするが,良しとしよう。


(追記) v7.5購入したのが半年前だったんでv8.0の無償アップグレード対象だった。期せずしてv8.0が使えるようになったんだけど,Support expiresが2009/09/03となっとる。Support expiresっていうくらいだから,YourKitそのものは使えると思うけど,まあ使えなくなったら,そんとき考えよう。

Excelファイルのダウンロードためしてみた

といっても実際に.xlsファイルを生成するのではなく,HTMLを無理矢理Excelで開かせるという古典的やり方。元ネタは「Groovy Recipes(asin:0978739299)」より。


type1がGroovy Recipesから引用したもの。GrailsUTF-8だけど,ExcelShift_JISを期待しているからてっきり日本語はバケると思ってたら,意外に平気だった(GrailsUnicodeエスケープした値を返す。加えて言えばExcelUnicodeエスケープしてある値を復号してくれるワケだ)。
ちなみに,Grails 1.0.4でExcel XPの話ね。


type1のように renderメソッドのクロージャに渡すBuilderが何なのかは調べきれてないが,MarkupBuilderじゃないのは分かった。その根拠に yield や yieldUnescape が効かない。


時にはタグを含む値をサニタイズしないで,そのまま展開したいって事もあろう。試行錯誤の結果,たどり着いたのがtype2のパターン。こっちはMarkupBuilderで組み立てた文字列を renderメソッドの textに与えている。なんでか知らんが,この時はUnicodeエスケープがかからずUTF-8で返る。
ダメ元で encoding に 'Shift_JIS' を指定したらコード変換してくれた。てっきりHTTPレスポンスヘッダに'Shift_JIS'って書き込む程度だろうと高をくくってただけに,ちょっと感心した。:-P


とりあえず帳票をExcelで開かせるには,最もお手軽なやりかた。contentType偽装してるだけなので,もう少し工夫すればWebブラウザでプレビュー→Excelで表示,みたいな使い回しもできると思う。

DynamicJasperプラグインでExcelファイルを生成してみた

DynamicJasperについては,InfoQのこの記事を参照してくれ。
JavaおよびGrails向けの動的レポート

超簡単に説明するよ。以下のコマンド叩いてプラグインをインストールする。

grails install-plugin dynamic-jasper

こんな感じのドメインクラス作って,末尾にあるURLを叩く。


そすっと,こんなExcelファイルがダウンロードされるよ。


URLのパラメタにreportFormatを指定しないとPDFになるけど,残念ながら日本語は出ない。XLSとCSVはちゃんと日本語出た。自動生成だから帳票デザインはテキトーだけど,その分お手軽。


ps.
reportFileNameは指定しておいた方が良い。この値がContent-dispositionのfilenameになる(試してないけど,日本語はムリだと思う)。
あとプラグイン内にAuthor, Bookというドメインクラスが入ってる。サンプルのつもりなんだけど,名前かぶるとジャマなので消しといたほうが無難かも。