|
|
前のページ 1 2 3 4 次のページ
|
|
HSSFの基本
|
まずは、HSSFからExcelを操作する際に必要となる基本的な概念について説明します。HSSFでは図1のようにワークブックの構成がそのままHSSFのクラスに対応しています。そのためワークブックを作成して、シートを追加するといったExcel上の操作に近い感覚でプログラムが書けますので、比較的理解しやすいと思います。
|
図1:ExcelとHSSFのクラスの関係 (画像をクリックすると別ウィンドウに拡大図を表示します)
|
- (1)HSSFWorkbook
- Excelのワークブックに対応するクラス。複数のシートを持つことができる
- (2)HSSFSheet
- Excelのシートに対応するクラス。複数の行を持つことができる
- (3)HSSFRow
- Excelの行に対応するクラス。複数のセルを持つことができる
- (4)HSSFCell
- Excelのセルに対応するクラス
|
|
新規ワークブックの作成
|
それでは、「Hello World!」と入力されたワークブック(図2)の生成を例に見て行きましょう。以下で説明するようにワークブックからシート、シートから行、行からセルを作成し、セルにデータを設定します。この流れが基本的なHSSFの使用方法になります。
|
図2:サンプルワークブック
|
package poi;
import java.io.FileOutputStream;
import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
/**
* ワークブックの新規作成サンプル
*/
public class HSSFCreateSample {
public static void main(String args[]) throws Exception {
// (1)ワークブックの生成
HSSFWorkbook wb = new HSSFWorkbook();
// (2)シートの生成
HSSFSheet sheet = wb.createSheet("New Sheet");
// (3)行を生成
HSSFRow row = sheet.createRow(1);
// (4)セルを生成
HSSFCell cell = row.createCell((short)1);
// (5)セルに文字列を設定
cell.setCellValue("Hello World!");
// (6)ワークブックの出力
FileOutputStream fos = new FileOutputStream("./output/workbook.xls");
wb.write(fos);
fos.close();
}
}
|
|
(1)ワークブックの生成
|
ワークブックを新規に生成する場合は、引数無しのデフォルトコンストラクタを使用します。既存のワークブックを読み込む場合は"POIFSFileSystem"や"InputStream"を引数にとるコンストラクタを使用します。
|
(2)シートの生成
|
作成したワークブックに新規シートを生成します。ここでは「New Sheet」というシート名を指定していますが、日本語のシート名を使用したい場合にはシート作成後にエンコーディングを指定して設定します。
|
// シートの生成
HSSFSheet sheet = wb.createSheet();
// シート名に日本語を設定する場合はエンコーディング指定
wb.setSheetName(0, "売上一覧", HSSFWorkbook.ENCODING_UTF_16);
|
|
(3)行を生成
|
作成したワークブックに、インデックスを指定して行を新規に生成します。
|
(4)セルを生成
|
生成した行に、インデックスを指定してセルを新規に生成します。
|
(5)セルに文字列を設定
|
生成したセルに文字列を設定します。セルにスタイルを設定する場合や、日本語を使用する場合は"HSSFCellStyle"を使用します。詳細は次ページで説明する「売上一覧の作成」を参照してください。
|
(6)ワークブックの出力
|
作成したワークブックをファイルに出力します。
|
前のページ 1 2 3 4 次のページ
|
|
|
|
著者プロフィール
株式会社ビーブレイクシステムズ 横井 朗
オープンソース指向技術コンサルタント。Java専門のソフトウェアハウス〜フリーエンジニアを経て現職。帳票開発のみならず、オープンソースを用いたシステム構築を日々提案。なによりもお客様の真のニーズを求めるため社内外でオープンソースに関する啓蒙活動を行う。
|
|
|
|