|
|
前のページ 1 2 3 4
|
|
ワークブックの読み込み
|
ここまででワークブックの作成方法については大体イメージを掴めたと思いますので、次に既存のワークブックを読み込む方法について説明します。HSSFでは画像の設定ができないため、ワークブックに画像を設定したい場合などは、あらかじめ画像付きのワークブックを用意しておき、データだけ後から設定します。
今回は例として、売上一覧のワークブックを読み込み、金額が5,000,000を超えるセルに新たなセルスタイルを設定し、背景色を変更してみましょう。
|
完成版のソースコード HSSFReadSample.java (クリックするとソースコードが表示されます)
|
|
// (1)ワークブックの読み込み
FileInputStream fis = new FileInputStream("./output/売上一覧.xls");
POIFSFileSystem poiFS = new POIFSFileSystem(fis);
HSSFWorkbook workbook = new HSSFWorkbook(poiFS);
// (2)セルスタイルの作成
HSSFCellStyle numericCellStyle = workbook.createCellStyle();
numericCellStyle.setFillPattern(HSSFCellStyle.SOLID_FOREGROUND);
numericCellStyle.setFillForegroundColor(HSSFColor.LIGHT_ORANGE.index);
numericCellStyle.setVerticalAlignment(HSSFCellStyle.VERTICAL_CENTER);
numericCellStyle.setAlignment(HSSFCellStyle.ALIGN_RIGHT);
numericCellStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
numericCellStyle.setBorderLeft(HSSFCellStyle.BORDER_THIN);
numericCellStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
numericCellStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("#,##0"));
// (3)シートの取得
HSSFSheet sheet = workbook.getSheetAt(0);
// 開始・終了の行番号を取得する
int firstRowNum = sheet.getFirstRowNum();
int lastRowNum = sheet.getLastRowNum();
for (int rowCnt = firstRowNum; rowCnt <= lastRowNum; rowCnt++) {
// (4)行の取得
HSSFRow row = sheet.getRow(rowCnt);
if (row != null) {
// (5)セルの取得
HSSFCell cell = row.getCell((short) 5);
if (cell != null && cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
double numeric = cell.getNumericCellValue();
// (6)新たなセルスタイルの設定
if (numeric >= 5000000) {
cell.setCellStyle(numericCellStyle);
}
}
}
}
|
|
- (1)ワークブックの読み込み
- 既存のワークブックを読み込んで、"HSSFWorkbook"を取得します
- (2)セルスタイルの作成
- 金額が5,000,000を超えるセルに設定するセルスタイルを作成します
- (3)シートの取得
- ワークブックにインデックスを指定してシートを読み込んでいます。"getSheet()"でシート名を指定して読み込むこともできます
- (4)行の取得
- シートにインデックスを指定して行を読み込みます。指定したインデックスに行が存在しない場合はnullが返されます
- (5)セルの取得
- 行にインデックスを指定してセルを取得しています。指定したインデックスにセルが存在しない場合はnullが返されます
- (6)新たなセルスタイルの設定
- セルのnullチェック、値の型チェックを行った後に値を判定し、条件に一致する場合は新たなセルスタイルを設定します
|
|
まとめ
|
8回に渡ったこの連載も、今回で最終回となりました。最後までお付き合いいただき、ありがとうございました。
今回は帳票というテーマで連載してきましたが、帳票だけでなく、多くのオープンソースソフトウェアがシステムで利用可能なレベルに達しており、今後ますます充実していくことと思います。オープンソースソフトウェアの充実によりユーザのメリットはもちろん、今まで特定のベンダーに依存せざるを得なかったシステム開発会社・エンジニアも同じ土俵で勝負をすることができる環境が整いつつあります。オープンソースという流れによって、業界全体のレベルが向上することを願いつつ、お別れいたします。では、またの機会にお会いしましょう。
|
前のページ 1 2 3 4
|
|
|
|
著者プロフィール
株式会社ビーブレイクシステムズ 横井 朗
オープンソース指向技術コンサルタント。Java専門のソフトウェアハウス〜フリーエンジニアを経て現職。帳票開発のみならず、オープンソースを用いたシステム構築を日々提案。なによりもお客様の真のニーズを求めるため社内外でオープンソースに関する啓蒙活動を行う。
|
|
|
|