XSSFWorkbook wb = new Workbook( );
XSSFSheet sheet = wb.createSheet( "sheet01" );
XSSFRow row = sheet.createRow( 0 );
XSSFCell cell1 = row.createCell( 0 );
cell1.setValue( 123 );
引数には値、もしくは文字列を設定します。設定できるのは、数値、文字列、真
偽のフラグ、日付の4種類です。
cell1.setValue( 123 );
cell2.setValue( "サンプル" );
cell3.setValue( true );
cell4.setValue( Calendar.getInstance( ) );
なおセルに日付を設定する場合のみ、上記に加えてセルタイプの設定が必要とな
ります。詳しくは「セルタイプの設定」をご覧ください。
セルタイプの設定
→ サンプルソース( Sample_06_04.java )
セルタイプを設定するには、XSSFCellクラスのsetCellTypeメソッドを使用しま
す。
記述
XSSFWorkbook wb = new Workbook( );
XSSFSheet sheet = wb.createSheet( "sheet01" );
XSSFRow row = sheet.createRow( 0 );
XSSFCell cell2 = row.createCell( 1 );
cell2.setValue( 123 );
cell2.setCellType( Cell.CELL_TYPE_STRING );
引数にはCellインターフェースの定数を使用します。定数は6種類用意されていま
す。
| 定数 | 中身 |
|---|---|
| Cell.CELL_TYPE_NUMERIC | 数値 |
| Cell.CELL_TYPE_STRING | 文字列 |
| Cell.CELL_TYPE_BOOLEAN | 真,偽 |
| Cell.CELL_TYPE_FORMULA | 計算式 |
| Cell.CELL_TYPE_BLANK | 空白 |
| Cell.CELL_TYPE_ERROR | エラーコード |
セルに設定された値の取得
→ サンプルソース( Sample_06_05.java )
セルに設定された値を取得するには、取得するデータの型に合わせたXSSFCellク
ラスの各メソッドを使用します。たとえばセルから文字列を取得する場合は以下の
ようになります。
InputStream in = new FileInputStream( "sampleRead.xlsx" );
XSSFWorkbook wb = ( XSSFWorkbook ) WorkbookFactory.create( in );
XSSFSheet sheet = wb.getSheet("sheet01");
XSSFRow row = sheet.getRow( 0 );
XSSFCell cell = row.getCell( 0 );
String res = cell.getStringCellValue( );
引数はありません。取得したいデータと使用する関数の関係は以下の通りです。
| データ | 関数 | 戻り値の型 |
|---|---|---|
| 数値 | getNumericCellValue | double |
| 文字列 | getStringCellValue | String |
| 日付 | getDateCellValue | Date |
| 計算式 | getCellFormula | String |
| 真偽 | getBooleanCellValue | boolean |
| エラーコード | getErrorCellValue | byte |
ちなみに取得したいデータと異なる関数を使用した場合はエラーが返ってきます。
セルに計算式を設定
→ サンプルソース( Sample_06_06.java )
セルに値ではなく計算式を設定するには、XSSFCellクラスのsetCellFormulaメ
ソッドを使用します。
記述
XSSFWorkbook wb = new Workbook( );
XSSFSheet sheet = wb.createSheet( "sheet01" );
XSSFRow row = sheet.createRow( 1 );
XSSFCell cell = row.createCell( 4 );
cell.setCellFormula( "SUM(B2:D2)" );
引数には計算式を示す文字列を設定します。上記サンプルの場合、Excelで設定
する場合は「=SUM(B2:D2)」という形になりますが、ここでは「=」は必要あ
りません。
以下は計算式の一例となります。設定する計算式はそのまま文字列として渡すの
で、詳しくはExcelのヘルプをご覧ください。
| 計算式 | 意味 |
|---|---|
| SUM | 合計 |
| AVERAGE | 平均 |
| ROUND | 四捨五入 |
| COUNT | 集計 |
| MAX | 最大値 |
| MIN | 最小値 |
セルを結合する
→ サンプルソース( Sample_06_07.java )
セルの結合設定には、XSSFSheetクラスのaddMergedRegionメソッドを使用し
ます。
XSSFWorkbook wb = new Workbook( );
XSSFSheet sheet = wb.createSheet( "sheet01" );
sheet.addMergedRegion( new CellRangeAddress( 1, 3, 1, 3 ) );
引数にはCellRangeAddressクラスで結合範囲を設定をして渡します。
CellRangeAddressクラスのコンストラクタの引数は左から、開始行、終了行、
開始列、終了列となっています。