SPRING/라이브러리

POI 셀 스타일 속성

steadyMan 2020. 12. 2. 16:20

POI라이브러리로 엑셀 파일을 생성하고

이제 셀의 스타일을 적용하는 방법을 정리합니다

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
Row row = null;
Cell cell = null;
// org.apache.poi.ss.usermodel.PrintSetup
PrintSetup print = null;
 
 
// SXSSFWorkbook 을 통해 cellstyle 을 생성합니다. 
 
SXSSFWorkbook workbook = new SXSSFWorkbook();
 
// org.apache.poi.ss.usermodel.CellStyle
// workbook 객체의 createCellStyle 을 통해 cell 스타일을 생성합니다. 
CellStyle TestStyle = workbook.createCellStyle();
 
// org.apache.poi.ss.usermodel.Font
// 텍스트의 폰트는 workbook의 createFont 를 통해 생성합니다. 
Font TestFont = workbook.createFont();
 
// 테스트 시트생성 
SXSSFSheet sheet = workbook.createSheet(0);
Row TestRow = sheet.CreatRow(0);
 
 
// 이 밑으로 많이 사용되는 속성들을 정리하겠습니다. 
 
// 셀병합
// 셀병합의 인덱스는 0부터 시작합니다. 
// 첫번째 가로셀 0번째셀 부터 1번째셀 세로 0번째셀 부터 0번째셀
// 두번째 가로셀 0번째셀 부터 1번째셀 세로 1번째셀 부터 1번째셀
// 병합이된 셀은 텍스트만 들어가는 경우는 병합의 첫번째 셀에 텍스트와 스타일을 주면 적용되고 
// 색상, 외곽선등 은 반복을 통해 병합된 모든셀에 적용시켜야 병합된셀에 스타일이 적용됩니다. 
sheet.addMergedRegion(new CellRangeAddress(0,1,0,0));
sheet.addMergedRegion(new CellRangeAddress(0,1,1,1));
 
 
// 셀 가로크기 설정
// 인덱스는 0부터 시작합니다. 
// 첫번째 파라미터로 위치를 두번째는 크기를 지정합니다. 
sheet.setColumnWidth(04440);
sheet.setColumnWidth(14110);
 
// Row 높이 설정
// 해당 row의 setHeight메소드에 원하는 크기를 입력하여 높이를 설정합니다. 
TestRow.setHeight((short)690)
 
 
// 셀의 텍스트 가운데정렬
TestStyle.setAlignment(CellStyle.ALIGN_CENTER);
TestStyle.setVerticalAlignment(CellStyle.VERTICAL_CENTER);
 
// 셀 테두리 지정 
// HSSFCellStyle == org.apache.poi.hssf.usermodel.HSSFCellStyle
// 굵은선 = BORDER_MEDIUM,  중간선 = BORDER_THIN
TestStyle.setBorderBottom(HSSFCellStyle.BORDER_THIN);
TestStyle.setBorderRight(HSSFCellStyle.BORDER_THIN);
TestStyle.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
TestStyle.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
 
// 셀 배경색 지정 
// IndexedColors == org.apache.poi.ss.usermodel.IndexedColors
// IndexedColors객체에서 원하는 색상의 index를 가져와 적용시킵니다. 
// 색상표는 검색하시면 상세히 나와있습니다. 
TestStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());
 
//텍스트 줄바꿈
// setWrapText에 true를 주면 해당 셀의 가로길이를 넘어가는 텍스트는 자동줄바꿈 처리됩니다.
TestStyle.setWrapText(true);
 
 
// 굵은폰트적용
TESTFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
 
// 폰트크기 설정
// 원하는 폰트크기의 X2 후 0을 붙여줍니다.
// ex 14 -> 280
TESTFont.setFontHeight((short)560);
 
// 폰트설정
// 원하는 폰트 이름을 직접 입력합니다(공백 준수)
TESTFont.setFontName("맑은 고딕");
 
// 폰트 세팅 
// 원하는 폰트를 셋팅하고 Font객체를 CellStyle 객체에 주입합니다. 
TestStyle.setFont(TESTFont);
 
 
// 스타일 적용
cell = row.createCell(0);
 
// 이렇게 해당 cell에 주입하고 싶은 Style객체를 주입하면 끝입니다. 
cell.setCellStyle(TestStyle);
 
// 반복문을 사용하여 원하는 형태의 셀과 스타일을 주입해주시면 되겠습니다.
 
 
// 인쇄 옵션 설정
// 상단에 만든 PrintSetup에 sheet.getPrintSetup()으로 객체를 주입합니다. 
// 주입받은 해당시트의 인쇄옵션을 설정합니다. 시트가 다수라면 각각 처리해야합니다.
print = sheet.getPrintSetup();
 
// 인쇄 방향설정
// 기본값은 세로방향입니다. 
// true 값을 주면 가로방향으로 인쇄합니다. 
print.setLandscape(true);
 
// 인쇄용지 크기설정
print.setPaperSize(PrintSetup.A4_PAPERSIZE);
 
// 인쇄영역에 맞춰서 한페이지에 모든열 맞추기 
sheet.setFitToPage(true);
print.setFitWidth((short)1);
print.setFitHeight((short)0);
 
 
 
 
 
 
 
 
 
 
 
 
 
cs

반복문을 잘사용하여 중복되는 코드를 줄이는것이 중요할거같습니다. 

감사합니다.