SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Apache POI HSSFによるExcelファイルの作成

Java EEのWebプロジェクトにおけるExcelデータの書き出し

  • このエントリーをはてなブックマークに追加

 Webはデータで満ちており、データを検索して表示するにはもってこいのメディアです。しかし多くの場合、ブラウザはデータ分析に適したツールとは言えません。以前の記事「Reading Excel Files with Apache POI HSSF」では、Excelブックを使ってJavaアプリケーションにデータを提供する方法を解説しました。今回は、同じ形式でユーザーにデータを提供する方法を見てみましょう。

  • このエントリーをはてなブックマークに追加

はじめに

 Webはデータで満ちており、データを検索して表示するにはもってこいのメディアです。多くのユーザーは、データが見つかると、自分の思考プロセスに合った方法でデータを分析したいと考えます。一部のWebアプリケーションは、データ表示オプションをどんどん増やすことで、このニーズに応えようとしています。それが適切な場合もあります。例えば、価格と機能を比較できるEコマースサイトなどです。それ以外の多くの場合には、ブラウザはデータ分析に適したツールとは言えません。特に、パワーユーザーは満足できないでしょう。財務データはその最たる例です。ビジネスインテリジェンスサイトのユーザーはデータをさまざまな切り口で見ることを望みますが、ユーザーごとに異なる表示方法を作成しようとすると、使い勝手の悪いものになり、保守作業が増えてしまいます。個人投資家は、株価分析サイトの融通の利かなさにしばしばフラストレーションを募らせます。

 一部の非常に高価なプラットフォームでは、ユーザーが満足するまでデータを操作できるWebページを作成できます。そのようなプラットフォームは、ライセンス、ハードウェア、トレーニングに費用がかかり、開発にはさらに多額の費用がかかります。アプリケーションによっては、この費用から高い投資収益を得られます。また、ユーザーが自由に操作できる形式で、非常に簡単にデータを提供できます。

 スプレッドシートはこの目的に申し分なく、前述のような高価なプラットフォームはスプレッドシートを自動的に生成してくれます。

 あるいは、こうしたスプレッドシートを、費用をかけずに自分で作ることもできます。

 以前の記事「Reading Excel Files with Apache POI HSSF」では、Excelブックを使ってJavaアプリケーションにデータを提供する方法を解説しました。今回は、同じ形式でユーザーにデータを提供する方法を見てみましょう。

簡単なスプレッドシート

 ごく簡単なスプレッドシートの場合、Officeアプリケーションに組み込まれたHTMLの読み書き機能を利用して、すべての作業を自動的に行うことができます。HTMLの表をスプレッドシートに変換するのに必要なことは、ヘッダー行に<th>タグを使うといった、いくつかの適切な書式設定だけです。次にその例を示します。

<table border="1" bordercolor="black">
   <tr>
      <th style="background-color: black; color: white;">
         Col 1
      </th>
      <th style="background-color: black; color: white;">
         Col 2
      </th>
      <th style="background-color: black; color: white;">
         Col 3
      </th>
   </tr>
   <tr>
      <td bgcolor="red">1</td>
      <td bgcolor="green">2</td>
      <td bgcolor="red">3</td>
   </tr>
   <tr>
      <td bgcolor="green">4</td>
      <td bgcolor="red">5</td>
      <td bgcolor="green">6</td>
   </tr>
</table>

 ここでJavaコードを使っていないのは著者がずぼらだからです。読者は、データセットを反復処理してヘッダーとフィールドの値を設定する処理を自分なりに想像してみてください。

 次に、JSPのMIMEタイプを設定します。

<%@ page language="java"
         contentType="text/html; charset=ISO-8859-1"
         pageEncoding="ISO-8859-1"%>
<%
   response.reset();
   response.setContentType("application/xls");
   response.setHeader("Content-Disposition",
                      "attachment;filename=simpleDemo.xls");
%>

 一部のWebサーバーでは、次のようにMIMEタイプをweb.xmlで定義する必要があります。

<mime-mapping>
   <extension>xls</extension>
   <mime-type>application/vnd.ms-excel</mime-type>
</mime-mapping>

 このJSPに対する標準的なhrefリンクをユーザーがクリックすると、スプレッドシートが作成されます。

図1 MIMEタイプからのダウンロードダイアログ
図1 MIMEタイプからのダウンロードダイアログ
図2 完成した簡単なスプレッドシート
図2 完成した簡単なスプレッドシート

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
再び、スタイルについて

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Scott Nelson(Scott Nelson)

ポータルおよびその他の複合Webアプリケーションを専門とするシニアプリンシパルコンサルタント。個人経営の商店からFortune 500(c)に入る多国籍企業まで、大小さまざまな企業向けのアプリケーションを「正しく」かつ「早く」作成した実績を持つ。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/3585 2009/03/17 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング