Apache POI HSSFによるExcelファイルの作成
はじめに
Webはデータで満ちており、データを検索して表示するにはもってこいのメディアです。多くのユーザーは、データが見つかると、自分の思考プロセスに合った方法でデータを分析したいと考えます。一部のWebアプリケーションは、データ表示オプションをどんどん増やすことで、このニーズに応えようとしています。それが適切な場合もあります。例えば、価格と機能を比較できるEコマースサイトなどです。それ以外の多くの場合には、ブラウザはデータ分析に適したツールとは言えません。特に、パワーユーザーは満足できないでしょう。財務データはその最たる例です。ビジネスインテリジェンスサイトのユーザーはデータをさまざまな切り口で見ることを望みますが、ユーザーごとに異なる表示方法を作成しようとすると、使い勝手の悪いものになり、保守作業が増えてしまいます。個人投資家は、株価分析サイトの融通の利かなさにしばしばフラストレーションを募らせます。
一部の非常に高価なプラットフォームでは、ユーザーが満足するまでデータを操作できるWebページを作成できます。そのようなプラットフォームは、ライセンス、ハードウェア、トレーニングに費用がかかり、開発にはさらに多額の費用がかかります。アプリケーションによっては、この費用から高い投資収益を得られます。また、ユーザーが自由に操作できる形式で、非常に簡単にデータを提供できます。
スプレッドシートはこの目的に申し分なく、前述のような高価なプラットフォームはスプレッドシートを自動的に生成してくれます。
あるいは、こうしたスプレッドシートを、費用をかけずに自分で作ることもできます。
以前の記事「Reading Excel Files with Apache POI HSSF」では、Excelブックを使ってJavaアプリケーションにデータを提供する方法を解説しました。今回は、同じ形式でユーザーにデータを提供する方法を見てみましょう。
簡単なスプレッドシート
ごく簡単なスプレッドシートの場合、Officeアプリケーションに組み込まれたHTMLの読み書き機能を利用して、すべての作業を自動的に行うことができます。HTMLの表をスプレッドシートに変換するのに必要なことは、ヘッダー行に
Col 1 | Col 2 | Col 3 |
---|---|---|
1 | 2 | 3 |
4 | 5 | 6 |
ここでJavaコードを使っていないのは著者がずぼらだからです。読者は、データセットを反復処理してヘッダーとフィールドの値を設定する処理を自分なりに想像してみてください。
次に、JSPのMIMEタイプを設定します。
一部のWebサーバーでは、次のようにMIMEタイプをweb.xmlで定義する必要があります。
xlsapplication/vnd.ms-excel
このJSPに対する標準的なhrefリンクをユーザーがクリックすると、スプレッドシートが作成されます。