필요한 lib 적용 후
controller에서 코딩하는 순서..
1. 엑셀 파일을 생성
SXSSFWorkbook wb = new SXSSFWorkbook(100);
2. sheet생성
Sheet hssfSheet = wb.createSheet("시트명");
3. 스타일 적용 - 미리 지정 후 해당 row 혹은 cell에 적용
ex) 타이틀 부분을 스타일 적용한다는 가정하에
CellStyle label = wb.createCellStyle(); // t스타일 객체 생성
Font i = wb.createFont(); /폰트 객체 생성
i.setFontHeightInPoints((short)18); // 글자크기 지정
i.setColor(i.COLOR_NORMAL); //색 지정
i.setBoldweight(i.BOLDWEIGHT_BOLD); // 선굵기지정
//i.setFontName("굴림체"); // 폰트설정
// label.setBorderTop(label.BORDER_THIN); //실선 적용
// label.setTopBorderColor(IndexedColors.BLACK.getIndex()); // 선색
// label.setBorderBottom(label.BORDER_THIN);
// label.setBottomBorderColor(IndexedColors.BLACK.getIndex());
// label.setBorderLeft(label.BORDER_THIN);
// label.setLeftBorderColor(IndexedColors.BLACK.getIndex());
// label.setBorderRight(label.BORDER_THIN);
// label.setRightBorderColor(IndexedColors.BLACK.getIndex());
label.setFont(i); //위에서 적용한 폰트스타일 적용
label.setAlignment(label.ALIGN_CENTER); //정렬
label.setVerticalAlignment(label.VERTICAL_CENTER); //정렬
3. row 생성 - 0부터 시작한다.
Row title_row = hssfSheet.createRow((short)0);
4. cell 생성 - 0부터 시작한다.
Cell title_cell = title_row.createCell((short)0);
2. 생성한 cell에 스타일 적용
title_cell.setCellStyle(label);
5. 생성한 cell에 데이터 입력
title_cell.setCellValue(param.getTitle());
6. 셀 병합 방법 - cell 생성 후 병합
hssfSheet.addMergedRegion(new CellRangeAddress(시작row,끝row,시작cell,끝cell);
ex)
hssfSheet.addMergedRegion(new CellRangeAddress(0,(short)0,0,(short)2));
-> 0번째 로우 전체 에서 0번째 cell에서 2번째 cell까지 병합
※ 셀 병합시 데이터 입력할때 주의하여야한다.
cell 0번째부터 1번째 병합 -> cell에 데이터 생성시 Cell title_cell = title_row.createCell((short)0);
cell 2번째부터 3번째 병합 -> cell에 데이터 생성시 Cell title_cell = title_row.createCell((short)2);
cell 4번째부터 5번째 병합 -> cell에 데이터 생성시 Cell title_cell = title_row.createCell((short)4);
이렇게 입력을 하여야 한다.
7. cell에 width 설정
억지로 주려고 했더니 자꾸 이상하게 먹어서 자동으로 width를 주는 함수로 적용
※ !!! 맨 마지막에 헤더의 수만큼만 반복문을 돌리면서 width 를 설정해주면 된다.
//넓이조절
for(int k=0;k<cellName.length;k++){
hssfSheet.autoSizeColumn(k); //자동 width 설정
hssfSheet.setColumnWidth(k, (hssfSheet.getColumnWidth(k))+1000 ); //보기좋게 넓힘
}
8. row 전부 완성 후 (엑셀에 들어갈 데이터 완성 후) 파일로 만들어 엑셀문서로 만들기
String file_name = param.getpFileName() + "x";//.xlsx
fileOut = new FileOutputStream("C:/areum/workspace/METIS/src/main/webapp/temp_file/ExcelExport/" + file_name);
wb.write(fileOut); // 엑셀문서
fileOut.close(); //파일닫기
'개발 > java' 카테고리의 다른 글
이클립스 에러!! : Error creating bean with name 에러발생 (0) | 2017.04.27 |
---|---|
자바공부 (0) | 2016.11.11 |
String,char (0) | 2016.11.09 |
1주차 - 자바란? , 변수 (0) | 2016.11.04 |
진법 (0) | 2016.11.04 |
댓글