- Home ›
- Apache POIでExcelを操作 ›
- スタイル ›
- HERE
枠線の表示
セルに対して枠線を表示する場合には、上下左右の枠線を個々に設定する必要があります。設定するのは線の種類と線の色を設定します。
まず線の種類を設定するにはCellStyleインターフェースで用意されているsetBorderTopメソッドを使います。
setBorderTop void setBorderTop(short border)
set the type of border to use for the top border of the cell Parameters: border - type
このメソッドの場合はセルの上部にある枠線の種類の設定です。同じように他の位置については次のメソッドを使います。
| 枠線の位置 | メソッド |
|---|---|
| 上 | setBorderTop(short border) |
| 下 | setBorderBottom(short border) |
| 左 | setBorderLeft(short border) |
| 右 | setBorderRight(short border) |
引数には線の種類を表すshort型の値を指定します。指定可能な値はCellStyleインターフェースで定義されており次のいずれかの値です。
BORDER_NONE BORDER_THIN BORDER_MEDIUM BORDER_DASHED BORDER_DOTTED BORDER_THICK BORDER_DOUBLE BORDER_HAIR BORDER_MEDIUM_DASHED BORDER_DASH_DOT BORDER_MEDIUM_DASH_DOT BORDER_DASH_DOT_DOT BORDER_MEDIUM_DASH_DOT_DOT BORDER_SLANTED_DASH_DOT
実際の使い方は次のようになります。
Workbook wb = new HSSFWorkbook(); CellStyle style = wb.createCellStyle(); style.setBorderLeft(CellStyle.BORDER_DASHED); style.setBorderRight(CellStyle.BORDER_DOUBLE);
この場合は左側と右側の枠線の種類を設定しています。
枠線の色
線の色を設定するにはCellStyleインターフェースで用意されているsetTopBorderColorメソッドを使います。
setTopBorderColor void setTopBorderColor(short color)
set the color to use for the top border Parameters: color - The index of the color definition
このメソッドの場合はセルの上部にある枠線の色の設定です。同じように他の位置については次のメソッドを使います。
| 枠線の位置 | メソッド |
|---|---|
| 上 | setTopBorderColor(short color) |
| 下 | setBottomBorderColor(short color) |
| 左 | setLeftBorderColor(short color) |
| 右 | setRightBorderColor(short color) |
引数には線の色を表すshort型の値を指定します。標準パレットに含まれている色については「org.apache.poi.ss.usermodel.IndexedColors」にて列挙型として定義されています。列挙されている値や指定方法は「前景色と背景色」を参照して下さい。
実際の使い方は次のようになります。
Workbook wb = new HSSFWorkbook(); CellStyle style = wb.createCellStyle(); style.setTopBorderColor(IndexedColors.MAROON.getIndex()); style.setBottomBorderColor(IndexedColors.SKY_BLUE.getIndex());
この場合は左側と右側の枠線の種類を設定しています。
これらのメソッドを使い枠線を表示したい枠線の位置に対して線の種類と色を指定したスタイルを作成し、セルに対してスタイルを設定します。
サンプルプログラム
実際に試してみましょう。
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import java.io.*;
public class Sample4_1{
public static void main(String[] args){
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet();
sheet.setColumnWidth(1, 4096);
Row row1 = sheet.createRow(1);
row1.setHeightInPoints(70);
Cell cell1_1 = row1.createCell(1);
cell1_1.setCellValue("Sample");
CellStyle style = wb.createCellStyle();
style.setBorderTop(CellStyle.BORDER_DASHED);
style.setBorderBottom(CellStyle.BORDER_DOUBLE);
style.setBorderLeft(CellStyle.BORDER_MEDIUM_DASH_DOT);
style.setBorderRight(CellStyle.BORDER_MEDIUM);
style.setTopBorderColor(IndexedColors.MAROON.getIndex());
style.setBottomBorderColor(IndexedColors.SKY_BLUE.getIndex());
style.setLeftBorderColor(IndexedColors.ORANGE.getIndex());
style.setRightBorderColor(IndexedColors.BLUE_GREY.getIndex());
cell1_1.setCellStyle(style);
FileOutputStream out = null;
try{
out = new FileOutputStream("sample4_1.xls");
wb.write(out);
}catch(IOException e){
System.out.println(e.toString());
}finally{
try {
out.close();
}catch(IOException e){
System.out.println(e.toString());
}
}
}
}
1つのセルに対して、上下左右それぞれの位置の枠線を表示するスタイルを作成しセルに設定しています。それでは作成されたExcelファイルを開いてみます。
上下左右の枠線が指定した色と種類を使って表示されていることが確認できます。
( Written by Tatsuo Ikura )
JavaDrive