programing

POI 생성 Excel 파일의 셀에 테두리 추가

starjava 2023. 5. 12. 20:08
반응형

POI 생성 Excel 파일의 셀에 테두리 추가

저는 POI를 사용하여 Excel 파일을 생성하고 있습니다.워크시트의 특정 셀에 테두리를 추가해야 합니다.

어떻게 하면 이 일을 해낼 수 있을까요?

셀에 사용되는 스타일로 테두리를 설정하면 이 작업이 수행됩니다.예:

style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);

최신 Apache Poi 버전에서는 다음을 수행합니다.

XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.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);

도우미 기능:

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에서 테두리를 추가하려면 다음과 같이 하십시오.

String cellAddr="$A$11:$A$17";

setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);

XSSF

테두리 스타일

사용하다XSSFCellStyle.BORDER_MEDIUM또는XSSFBorderFormatting.BORDER_MEDIUM(두 열거값 모두 동일한 값을 나타냄):

final 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)(위, 왼쪽, 오른쪽에 동일):

final XSSFCellStyle cellStyle = workbook.createCellStyle();
final 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);

HSSF 또는 XSSF가 아닌 org.apache.poi.ss.user 모델을 사용하는 경우 다음을 사용할 수 있습니다.

style.setBorderBottom(BorderStyle.THIN);
style.setBorderTop(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);

모든 테두리 스타일은 아파치 설명서에 있습니다.

버전 4.0.0 이후RegionUtil새 서명이 있습니다.예:

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);

언급URL : https://stackoverflow.com/questions/5720049/add-borders-to-cells-in-poi-generated-excel-file

반응형