セルのスタイルを設定

広告

例えばセルに対して色を設定しようとする場合、Pスタイルと呼ばれるものを作成しセルに対して設定します。

Apache POIにおいてスタイルを表すオブジェクトは「HSSFCellStyle」クラス及び「XSSFCellStyle」クラスのオブジェクトとなります。

HSSFCellStyleクラスのクラス定義は次のようになっています。

public final class HSSFCellStyle
extends java.lang.Object implements CellStyle
java.lang.Object
 L org.apache.poi.hssf.usermodel.HSSFCellStyle

新規にHSSFCellStyleクラスのオブジェクトを作成するにはHSSFWorkbookクラスで用意されているcreateCellStyleメソッドなどを使って作成します。

HSSFWorkbook wb = new HSSFWorkbook();

HSSFCellStyle style = wb.createCellStyle();

スタイルはワークブックオブジェクトから作成するという点に注意して下さい。

続いてXSSFCellStyleクラスです。XSSFCellStyleクラスのクラス定義は次のようになっています。

public class XSSFCellStyle
extends java.lang.Object implements CellStyle
java.lang.Object
 L org.apache.poi.xssf.usermodel.XSSFCellStyle

新規にXSSFCellクラスのオブジェクトを作成するにはHSSFCellStyleクラスで用意されているcreateCellStyleメソッドなどを使って作成します。

XSSFWorkbook wb = new XSSFWorkbook();

HSSFCellStyle style = wb.createCellStyle();

このようにExcel2003までの形式のセルと、Excel2007の形式のセルを明示的に作成することができます。

CellStyleインターフェース

「ss」ユーザーモデルでは、Workbookインターフェースで用意されているcreateCellStyleメソッドを使ってセルオブジェクトを作成します。

Create a new Cell style and add it to the workbook's style table 

Returns:
  the new Cell Style object

このメソッドを使って作成されるオブジェクトはCellStyleインターフェースを実装したクラスのオブジェクトとなります。CellStyleインターフェースは「HSSFCellStyle」クラス及び「XSSFCellStyle」クラスに共通するスーパーインターフェースです。

実際の使い方は次のようになります。

Workbook wb1 = new HSSFWorkbook();
CellStyle style1 = wb1.createCellStyle();

Workbook wb2 = new XSSFWorkbook();
CellStyle style2 = wb2.createCellStyle();

どちらのファイルフォーマットの形式のものであっても同じようにスタイルを扱うことができます。

スタイルをセルに設定

作成したスタイルをセルに設定するには、Cellインターフェースで用意されているsetCellStyleメソッドを使います。

Set the style for the cell. The style should be an CellStyle created/retreived from the 
Workbook.

Parameters:
  style - reference contained in the workbook. If the value is null then the style 
    information is removed causing the cell to used the default workbook style.

引数にはスタイルを表すCellStyleインタフェースを実装したクラスのオブジェクトを指定します。

実際の使い方は次のようになります。

Workbook wb = new HSSFWorkbook();
Sheet sheet = web.createSheet();
Row row = sheet.createSheet(0);
Cell cell = row.createCell(0);

CellStyle style = wb1.createCellStyle();
cell.setCellStyle(style);

設定さえるスタイルをどのようなものにするかについては、CellStyleインターフェース用意されている様々なメソッドを使って設定していきます。次のページ以降で一つ一つ確認していきます。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)