Java&Framework

Excel POI 사용법

ZZJJing 2022. 10. 20. 10:25

Apache POI 라이브러리를 사용하여 Excel 파일을

생성하고 처리하는 방법을 정리해보겠습니다. 


개념

  • ROW: 가로 줄
  • CELL: 세로 줄
  • 한 줄씩 생성할 때마다 create로 객체를 생성해야 합니다.

import 처리

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFCellStyle;
import org.apache.poi.hssf.usermodel.HSSFFont;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.ss.usermodel.CellStyle;
import org.apache.poi.ss.util.CellRangeAddress;

객체 선언

HSSFWorkbook objWorkBook = new HSSFWorkbook();   // 엑셀 객체 선언

HSSFSheet objSheet = null;          // 엑셀 시트 객체
HSSFRow objRow = null;              // 엑셀 시트 내 ROW 객체
HSSFCell objCell = null;          // 엑셀 시트 내 CELL 객체

셀 설정

HSSFCellStyle styleHd3 = objWorkBook.createCellStyle();  // 셀 스타일 객체 선언 (헤더 모양 잡기)

styleHd3.setAlignment(CellStyle.ALIGN_CENTER);  // 가운데 정렬
styleHd3.setVerticalAlignment(CellStyle.VERTICAL_CENTER);  // 높이 가운데 정렬
styleHd3.setBorderRight(HSSFCellStyle.BORDER_THIN);  // 테두리 오른쪽 설정
styleHd3.setBorderLeft(HSSFCellStyle.BORDER_THIN);  // 테두리 왼쪽 설정
styleHd3.setBorderTop(HSSFCellStyle.BORDER_THIN);  // 테두리 상단 설정
styleHd3.setBorderBottom(HSSFCellStyle.BORDER_THIN);  // 테두리 하단 설정

폰트 설정

HSSFFont font3 = objWorkBook.createFont();  // 폰트 설정 객체 생성
font3.setFontHeightInPoints((short) 10);  // 폰트 크기 설정
font3.setFontName("맑은고딕");  // 폰트 설정
styleHd3.setFont(font3);  // 선언한 셀에 폰트 타입 설정

엑셀 시트 생성 및 이름 설정

objSheet = objWorkBook.createSheet("테스트 시트");

로우 만들기, 병합 및 값 넣기

objRow = objSheet.createRow(1);
objRow.setHeight((short) 0x150);
objSheet.addMergedRegion(new CellRangeAddress(1, 1, 0, 23));
objCell = objRow.createCell(0);
objCell.setCellValue("헤더 표 이름");

엑셀 다운로드 처리

response.setContentType("Application/Msexcel");
response.setHeader("Content-Disposition", "ATTachment; Filename=" + excel_title + ".xls");

OutputStream fileOut = response.getOutputStream();
objWorkBook.write(fileOut);
fileOut.close();

response.getOutputStream().flush();
response.getOutputStream().close();

추가 정보

  • Apache POI 라이브러리: Apache POI는 Java API로, Microsoft Office 파일 형식을 읽고 쓰는 데 사용됩니다. HSSF는 Excel 97-2003 형식(.xls)을 다루는 데 사용됩니다.
  • CellStyle: 셀 스타일을 설정하여 셀의 정렬, 테두리, 배경색 등을 지정할 수 있습니다.
  • Font: 폰트를 설정하여 셀 내 텍스트의 글꼴, 크기, 색상 등을 지정할 수 있습니다.
  • CellRangeAddress: 셀 병합을 위해 사용되는 클래스입니다.

이렇게 하면 Excel 파일을 생성하고 스타일을 설정하는 방법을 이해할 수 있습니다.