行の新規作成

広告

シートの中のいずれかのセルに対して値を設定する場合には、そのセルが含まれる行をまず作成する必要があります。行を作成し、さらに行の中にセルを作成してから、そのセルに対して値を設定するという手順を取ります。ここではまず新しく行を作成する方法を確認します。

Apache POIにおいて行を表すオブジェクトは「HSSFRow」クラス及び「XSSFRow」クラスのオブジェクトとなります。

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

public final class HSSFRow
extends java.lang.Object implements Row
java.lang.Object
 L org.apache.poi.hssf.usermodel.HSSFRow

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

HSSFWorkbook wb = new HSSFWorkbook();
HSSFSheet sheet = wb.createSheet();
HSSFRow row = sheet.createRow(0);

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

public class XSSFRow
extends java.lang.Object implements Row, java.lang.Comparable<XSSFRow>
java.lang.Object
 L org.apache.poi.xssf.usermodel.XSSFRow

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

XSSFWorkbook wb = new XSSFWorkbook();
XSSFSheet sheet = wb.createSheet();
XSSFRow row = sheet.createRow(0);

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

Rowインターフェース

「ss」ユーザーモデルでは、まずWorkbookインターフェースを実装したクラスのオブジェクトを作成し、そこからSheetインターフェースを実装したクラスのオブジェクトを作成しました。同じように行を作成するにはSheetインターフェースで用意されているcreateRowメソッドを使って行オブジェクトを作成します。

Create a new row within the sheet and return the high level representation 

Returns:
  rownum - row number 
Returns:
  high level Row object representing a row in the sheet

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

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

Workbook wb1 = new HSSFWorkbook();
Sheet sheet1 = wb1.createSheet();
Row row1 = sheet1.createSheet(0);

Workbook wb2 = new XSSFWorkbook();
Sheet sheet2 = wb2.createSheet();
Row row2 = sheet2.createSheet(0);

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

( Written by Tatsuo Ikura )

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