반응형
이번 글에서는 Apache POI 라이브러리를 사용해 Java로 Excel 파일을 생성하는 방법을 처음부터 끝까지 설명합니다. 스타일 적용, 데이터 작성, 컬럼 스타일링 등, 실용적인 예제를 통해 구현 방법을 단계별로 알아보겠습니다.
1. Apache POI란?
Apache POI는 Java 기반으로 MS Office 문서를 다룰 수 있는 강력한 라이브러리입니다. 특히, Excel 파일을 처리하는 데 가장 널리 쓰입니다.
2. Excel 파일 생성 프로세스
🛠️ 준비 단계
- 의존성 추가
Maven 프로젝트라면pom.xml
에 아래 의존성 추가
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.2.3</version> <!-- 최신 버전을 확인하세요 -->
</dependency>
- Apache POI 주요 클래스
Workbook
: Excel 파일을 나타냄. (HSSFWorkbook:.xls
, XSSFWorkbook:.xlsx
)Sheet
: 워크시트(탭)를 나타냄.Row
와Cell
: 각 행과 셀.
3. 구현 방법: 단계별 설명
🌟 1단계: Workbook 생성
Excel 파일을 생성하려면 먼저 Workbook 객체를 초기화해야 합니다. .xlsx
파일은 XSSFWorkbook
을 사용합니다.
Workbook workbook = new XSSFWorkbook();
🌟 2단계: Sheet 생성
workbook.createSheet("Sheet 이름")
을 호출해 워크시트를 추가합니다.
Sheet sheet = workbook.createSheet("첫 번째 시트");
🌟 3단계: Row와 Cell 추가
Excel 파일에 데이터를 추가하려면 Row
와 Cell
객체를 생성해야 합니다.
Row row = sheet.createRow(0); // 첫 번째 행 생성
Cell cell = row.createCell(0); // 첫 번째 셀 생성
cell.setCellValue("안녕하세요!"); // 데이터 입력
🌟 4단계: 스타일 적용
CellStyle
을 사용해 셀의 스타일을 설정할 수 있습니다.
1. 스타일 초기화
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short) 14); // 글꼴 크기
font.setBold(true); // 굵게
style.setFont(font);
style.setAlignment(HorizontalAlignment.CENTER); // 가운데 정렬
style.setVerticalAlignment(VerticalAlignment.CENTER); // 세로 가운데 정렬
2. 스타일 적용
cell.setCellStyle(style);
🌟 5단계: 데이터와 스타일 반복 적용
데이터를 반복적으로 추가하고 스타일을 적용하려면 for 루프를 활용합니다.
for (int i = 0; i < 10; i++) {
Row dataRow = sheet.createRow(i + 1); // 첫 번째 행 아래부터 데이터 추가
for (int j = 0; j < 5; j++) {
Cell dataCell = dataRow.createCell(j);
dataCell.setCellValue("데이터 " + (i + 1) + "-" + (j + 1));
dataCell.setCellStyle(style);
}
}
🌟 6단계: 컬럼 너비 조정
자동으로 컬럼 크기를 설정하려면 다음 메소드를 사용합니다:
for (int i = 0; i < 5; i++) {
sheet.autoSizeColumn(i); // i번째 컬럼의 너비를 데이터에 맞게 자동 조정
}
🌟 7단계: Excel 파일 저장
생성한 Excel 파일을 실제로 저장하려면 FileOutputStream을 사용합니다.
try (FileOutputStream fileOut = new FileOutputStream("sample.xlsx")) {
workbook.write(fileOut); // 워크북 내용을 파일로 출력
}
workbook.close(); // 리소스 해제
4. 완성된 코드 예제
아래는 위의 모든 단계를 포함한 전체 구현 코드입니다:
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import java.io.FileOutputStream;
public class ExcelExample {
public static void main(String[] args) {
try (Workbook workbook = new XSSFWorkbook()) {
Sheet sheet = workbook.createSheet("첫 번째 시트");
// 제목 행 추가
Row row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("안녕하세요!");
// 스타일 설정
CellStyle style = workbook.createCellStyle();
Font font = workbook.createFont();
font.setFontHeightInPoints((short) 14);
font.setBold(true);
style.setFont(font);
style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER);
cell.setCellStyle(style);
// 데이터 추가
for (int i = 0; i < 10; i++) {
Row dataRow = sheet.createRow(i + 1);
for (int j = 0; j < 5; j++) {
Cell dataCell = dataRow.createCell(j);
dataCell.setCellValue("데이터 " + (i + 1) + "-" + (j + 1));
dataCell.setCellStyle(style);
}
}
// 컬럼 크기 자동 조정
for (int i = 0; i < 5; i++) {
sheet.autoSizeColumn(i);
}
// 파일 저장
try (FileOutputStream fileOut = new FileOutputStream("sample.xlsx")) {
workbook.write(fileOut);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
5. 마무리
이 글에서는 Apache POI를 활용한 Excel 파일 생성 방법을 보았습니다.
- Workbook 생성부터 데이터 추가, 스타일링, 파일 저장까지 전 과정
- 실제 프로젝트에서 다양한 Excel 템플릿 생성 및 데이터 관리에 활용
반응형
'Java' 카테고리의 다른 글
[JAVA] @Transactional 알아보기 Part.1 #프록시와 트랜잭션 동작 원리 (0) | 2024.12.23 |
---|---|
[JAVA] Spring 공통 모듈을 패키지화하고 GitHub Packages에 등록하는 방법 (0) | 2024.12.06 |
[JAVA] Java의 예외 계층 구조와 개념 (4) | 2024.11.15 |
[JAVA] Java에서 예외 처리방법 (7) | 2024.11.13 |
[JAVA] 프로젝트에서 PMD를 이용한 소스 품질 검사 (0) | 2024.11.11 |