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
'programing' 카테고리의 다른 글
Azure SQL Server 인스턴스에서 데이터베이스 사용자에게 부여된 역할 및 사용 권한을 보려면 어떻게 해야 합니까? (0) | 2023.05.12 |
---|---|
Debug.WriteLine이 작동하지 않습니다. (0) | 2023.05.12 |
UITableViewController 외부의 정적 테이블 보기 (0) | 2023.05.12 |
EP Plus - Excel 표 읽기 (0) | 2023.05.07 |
Swift Dictionary: 배열로 값 가져오기 (0) | 2023.05.07 |