__sozai__/0011738.pngセルにスタイルを設定

__sozai__/0012210.gif

 

セルにスタイルを設定するには以下の2つの手順を踏む必要があります。


1)設定したいスタイルの作成

2)作成したスタイルをセルに設定


スタイルの作成にはXSSFWorkbookクラスのcreateCellStyleメソッドを、セル

にスタイルを設定するのにはXSSFCellクラスのsetCellStyleメソッドをそれぞれ

使用します。


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 0 );

  XSSFCell cell = row.createCell( 0 );

  XSSFCellStyle style = wb.createCellStyle( );

  cell.setCellStyle( style );


__sozai__/0011738.pngセルに色をつける

__sozai__/0012210.gif

 

→ サンプルソース( Sample_07_02.java )

 

セルに色をつける設定には色と模様の2つがあります。また色についても前景色

背景色の2種類が存在します。それぞれ


 前景色・・・模様の色

 背景色・・・下地の色


となっており、初期設定はそれぞれ前景色が黒、背景色が白となっています。つ

りセルに色をつけるには3つを設定する必要があるのです。


1)模様の設定

2)模様の色の設定

3)下地の色の設定

 

模様や色の設定にはXSSFCellStyleクラスのメソッドをそれぞれ使用します。模

の設定にはsetFillPatternメソッドを、前景色の設定にはsetFillForegroundC

olorメソッドを、背景色の設定にはsetFillBackgroundColorメソッドといった

具合になっております。


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 1 );

  XSSFCell cell = row.creatCell( 1 );

  XSSFCellStyle style = wb.createCellStyle( );

  style.setFillPattern(CellStyle.BIG_SPOTS);

  style.setFillForegroundColor(IndexedColors.RED.getIndex( ) );

  style.setFillBackgroundColor(IndexedColors.BLUE.getIndex( ) );
  cell.setCellStyle( style );



まずは模様の設定について説明をします。設定できる模様は以下の19種類とな

ます。


模様定数見本
 設定なし  NO_FILL POI_NO_FILL.png
 100%塗りつぶし  SOLID_FOREGROUND POI_SOLID_FOERGROUND.png
 75%濃度塗りつぶし  ALT_BARS POI_ALT_BARS.png
 50%濃度塗りつぶし  FINE_DOTS POI_FINE_DOTS.png
 25%濃度塗りつぶし  SPARSE_DOTS POI_SPARSE_DOTS.png
 12.5%濃度塗りつぶし  LESS_DOTS POI_LESS_DOTS.png
 6.25%濃度塗りつぶし  LEAST_DOTS POI_LEAST_DOTS.png
 縦線 縞(細)  THIN_VERT_BANDS POI_THIN_VERT_BANDS.png
 縦線 縞(太)  THICK_VERT_BANDS POI_THICK_VERT_BANDS.png
 横線 縞(細)  THIN_HORZ_BANDS POI_THIN_HORZ_BANDS.png
 横線 縞(太)  THICK_HORZ_BANDS POI_THICK_HORZ_BANDS.png
 縦横線 格子(細)  SQUARES POI_SQUARES.png
 右下がり斜線 縞(細)  THIN_BACKWARD_DIAG POI_THIN_BACKWARD_DIAG.png
 右下がり斜線 縞(太)  THICK_BACKWARD_DIAG POI_THICK_BACKWARD_DIAG.png
 左下がり斜線 縞(細)  THIN_FORWARD_DIAG POI_THIN_FORWARD_DIAG.png
 左下がり斜線 縞(太)  THICK_FORWARD_DIAG POI_THICK_FORWARD_DIAG.png
 斜線 格子(細)  DIAMONDS POI_DIAMONDS.png
 斜線 格子(太)  BIG_SPOTS POI_BIG_SPOTS.png
 斜線 格子(極太)  BRICKS POI_BRICKS.png


続いて色の設定です。上記のサンプルではIndexedColorsで定義された色に対応

する番号を渡していますが、以下のような方法でRGBを設定して渡すことも可能

です。


__sozai__/0011780.png記述

  style.setFillForegroundColor( new XSSFColor( new Color( 0, 128, 255 ) ) );

  style.setFillBackgroundColor( new XSSFColor( new Color( 255, 128, 0 ) ) );


__sozai__/0011738.png罫線の設定

__sozai__/0012210.gif

 

→ サンプルソース( Sample_07_03.java )

 

罫線の設定では、セルに対する罫線の位置と線の種類、線の色という3つの内容

対してXSSFCellStyleクラスのメソッドを使用してそれぞれ設定を行います。


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 1 );

  XSSFCell cell = row.createCell( 1 );

  XSSFCellStyle style = wb.createCellStyle();

  style.setTopBorderColor( IndexedColors.RED.getIndex( ) );

  style.setBorderTop( CellStyle.BORDER_THIN );

  style.setBottomBorderColor( IndexedColors.RED.getIndex( ) );

  style.setBorderBottom( CellStyle.BORDER_DOTTED );

  style.setLeftBorderColor( IndexedColors.RED.getIndex( ) );

  style.setBorderLeft( CellStyle.BORDER_DASHED );

  style.setRightBorderColor( IndexedColors.RED.getIndex( ) );

  style.setBorderRight( CellStyle.BORDER_DOUBLE );

  cell.setCellStyle( style );


罫線の位置と関数の関係は以下のようになります。


位置線種の設定線色の設定
 setBorderTop  setTopBorderColor
 setBorderBottom  setBottomBorderColor
 setBorderLeft  setLeftBorderColor
 setBorderRight  setRightBorderColor


線の種類を設定するにはCellStyleで定義された以下の定数を引数として渡します。


線種定数見本
 線なし  BORDER_NONE BORDER_NONE.png
 実線  BORDER_THIN BORDER_THIN.png
 点線  BORDER_DOTTED BORDER_DOTTED.png
 点線と破線の中間  BORDER_HAIR BORDER_HAIR.png
 破線  BORDER_DASHED BORDER_DASHED.png
 1点鎖線  BORDER_DASH_DOT BORDER_DASH_DOT.png
 2点鎖線  BORDER_DASH_DOT_DOT BORDER_DASH_DOT_DOT.png
 2重線  BORDER_DOUBLE BORDER_DOUBLE.png
 太線  BORDER_MEDIUM BORDER_MEDIUM.png
 破線(太)  BORDER_MEDIUM_DASHED BORDER_MEDIUM_DASHED.png
 1点鎖線(太)  BORDER_MEDIUM_DASH_DOT BORDER_MEDIUM_DASH_DOT.png
 2点鎖線(太)  BORDER_MEDIUM_DASH_DOT_DOT BORDER_MEDIUM_DASH_DOT_DOT.png
 斜め1点鎖線(太)  BORDER_SLANTED_DASH_DOT BORDER_SLANTED_DASH_DOT.png
 極太線  BORDER_THICK BORDER_THICK.png


また線の色を設定するために上記のサンプルではIndexedColorsで定義された色

対応する番号を渡していますが、以下のような方法でRGBを設定して渡すこと

も可能です。


__sozai__/0011780.png記述
  style.setTopBorderColor( new XSSFColor( new Color( 0, 128, 255 ) ) );

 

__sozai__/0011738.png表示形式の変更

__sozai__/0012210.gif

 

→ サンプルソース( Sample_07_04.java )

 

日付表記や%表記など表示形式を設定したい場合は、XSSFStyleクラスのsetDa

taFormatメソッドを使用します。


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 1 );

  XSSFCell cell = row.createCell( 1 );

  cell.setCellValue( 0.1 );

  XSSFCellStyle style = wb.createCellStyle( );

  DataFormat format = wb.createDataFormat( );

  style.setDataFormat( format.getFormat( "#.0#%" ) );

  cell.setCellStyle( style );

 

DataFormatクラスのgetFormatメソッドを使用してフォーマットをshort型に

変換し、それを引数として渡します。フォーマットの設定についてはMicroSoft

のサポートページをご参照ください。(リンクは別ページで開きます)




__sozai__/0011738.pngセル内表示位置の設定

__sozai__/0012210.gif

 

→ サンプルソース( Sample_07_05.java )

 

セル内表示位置を設定するには、XSSFCellStyleクラスのsetAlignmentメソッド

(水平方向)とsetVerticalAlignmentメソッド(垂直方向)を使用します。


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 1 );

  XSSFCell cell = row.createCell( 1 );

  cell.setCellValue( 123 );

  XSSFCellStyle style = wb.createCellStyle( );

  style.setAlignment( CellStyle.ALIGN_CENTER );

  style.setVerticalAlignment( CellStyle.VERTICAL_CENTER );

  cell.setCellStyle( style );


引数にはCellStyleで定義された定数を渡します。以下がその定数の一覧です。


効果定数対象
 標準  ALIGN_GENERAL  水平
 左詰め  ALIGN_LEFT  水平
 中央揃え  ALIGN_CEFT  水平
 右詰め  ALIGN_RIGHT  水平
 繰り返し  ALIGN_FILL  水平
 両端揃え  ALIGN_JUSTIFY  水平
 選択範囲内で中央  ALIGN_CENTER_SELECTION  水平
 上詰め  VERTICAL_TOP  垂直
 中央揃え  VERTICAL_CENTER  垂直
 下詰め  VERTICAL_BOTTOM  垂直
 両端揃え  VERTICAL_JUSTIFY  垂直



__sozai__/0011738.pngフォントの設定

__sozai__/0012210.gif

 

→ サンプルソース( Sample_07_06.java )

 

フォントの設定は、以下の3つの手順によって行われます。


1)XSSFWorkBookクラスのcreateFontメソッドでXSSFFontクラスを作成

2)XSSFFontの各メソッドでフォントを設定

3)XSSFCellStyleクラスのsetFontメソッドで設定したフォントをスタイル

  に追加


__sozai__/0011780.png記述

  XSSFWorkbook wb = new Workbook( );

  XSSFSheet sheet = wb.createSheet( "sheet01" );

  XSSFRow row = sheet.createRow( 1 );

  XSSFCell cell = row.creatCell( 1 );

  XSSFCellStyle style = wb.createCellStyle( );

  XSSFFont font = wb.createFont( );

  font.setFontName( "MS 明朝" );

  font.setFontHeightInPoints( (short)16 );

  font.setFontColor( IndexedColors.RED.getIndex( ) );

  font.setBoldweight( Font.BOLDWEIGHT_BOLD );

  font.setItalic( true );

  font.setUnderline( Font.U_SINGLE );

  font.setStrikeout( true );

  style.setFont( font );

  cell.setCellStyle( style );

 

フォントの設定項目と関数の関係は以下の通りとなっており、


設定関数
フォント名  setFontName( String fontname )
フォントサイズ  setFontHeightInPoints( short fontsize )
フォントカラー

 setColor( short color_index )

 setColor( XSSFColor color )

文字の装飾(太字)  setBoldweight( short boldweight )
文字の装飾(斜体)  setItalic( boolean italic )
文字の装飾(下線)  setUnderline( byte underline )
文字の装飾(打ち消し線)  setStrikeout( boolean strikeout )


このうち太字と下線の文字装飾については、XSSFFontクラスの定数を引数に渡

します。


意味定数使用対象
 標準  BOLDWEIGHT_NORMAL 太字
 太字  BOLDWEIGHT_BOLD 太字
 なし  U_NONE 下線
 実線(値との間に隙間なし)  U_SINGLE 下線
 実線(値との間に隙間あり)  U_SINGLE_ACCOUNTING 下線
 2重線(値との間に隙間なし)  U_DOUBLE 下線
 2重線(値との間に隙間あり)  U_DOUBLE_ACCOUNTING 下線



btn028_06.gif手順アイコン.png