POIを使用してExcelファイルを生成しています。ワークシートの特定のセルに境界線を追加する必要があります。
どうすればこれを達成できますか?
セルで使用されるスタイルで境界線を設定すると、これが実現します。例:
style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
新しいApache poiバージョンでは:
XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.MEDIUM);
ヘルパー関数:
_private void setRegionBorderWithMedium(CellRangeAddress region, Sheet sheet) {
Workbook wb = sheet.getWorkbook();
RegionUtil.setBorderBottom(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderLeft(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderRight(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderTop(CellStyle.BORDER_MEDIUM, region, sheet, wb);
}
_
ExcelでBorderを追加する場合、
_String cellAddr="$A$11:$A$17";
_
setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);
_XSSFCellStyle.BORDER_MEDIUM
_または_XSSFBorderFormatting.BORDER_MEDIUM
_を使用します(両方の列挙型が同じ値を参照します)。
_XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
cell.setCellStyle(cellStyle);
_
setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, XSSFColor)
またはsetBottomBorderColor(XSSFColor)
を使用します(上、左、右に相当):
_XSSFCellStyle cellStyle = workbook.createCellStyle();
XSSFColor color = new XSSFColor(new Java.awt.Color(128, 0, 128));
cellStyle.setTopBorderColor(color);
cellStyle.setRightBorderColor(color);
cellStyle.setBottomBorderColor(color);
cellStyle.setLeftBorderColor(color);
cell.setCellStyle(cellStyle);
_
バージョン4.0.0以降、RegionUtil
- methodsには新しいシグネチャが追加されました。例えば:
RegionUtil.setBorderBottom(BorderStyle.DOUBLE,
CellRangeAddress.valueOf("A1:B7"), sheet);
Apache POIで境界線を作成するには、次を実行する必要があります...
1:スタイルを作成する
final XSSFCellStyle style = workbook.createCellStyle();
2:次に、境界線を作成する必要があります
style.setBorderBottom( new XSSFColor(new Color(235,235,235));
3:次に、その境界線の色を設定する必要があります
style.setBottomBorderColor( new XSSFColor(new Color(235,235,235));
4:次に、スタイルをセルに適用します
cell.setCellStyle(style);