[java] Java Apache POI를 사용하여 Excel 파일의 셀 병합하기

Apache POI는 Java에서 Microsoft Office 포맷인 Excel, Word, PowerPoint 등을 조작할 수 있는 라이브러리입니다. 이번 글에서는 Apache POI 라이브러리를 사용하여 Excel 파일의 셀을 병합하는 방법에 대해 알아보겠습니다.

Apache POI 라이브러리 추가하기

먼저, Apache POI 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우, pom.xml 파일에 다음 의존성을 추가합니다.

<dependencies>
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>4.1.2</version>
  </dependency>
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>4.1.2</version>
  </dependency>
</dependencies>

Gradle을 사용하는 경우, build.gradle 파일에 다음 의존성을 추가합니다.

dependencies {
   implementation 'org.apache.poi:poi:4.1.2'
   implementation 'org.apache.poi:poi-ooxml:4.1.2'
}

Excel 파일 생성 및 셀 병합하기

다음은 Apache POI를 사용하여 Excel 파일을 생성하고 셀을 병합하는 예제 코드입니다.

import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;

import java.io.FileOutputStream;
import java.io.IOException;

public class ExcelMergeCellsExample {
    public static void main(String[] args) {
        // 새로운 워크북 생성
        Workbook workbook = new XSSFWorkbook();
        // 워크시트 생성
        Sheet sheet = workbook.createSheet("Sheet1");

        // 셀에 데이터 입력
        Row row1 = sheet.createRow(0);
        Cell cell1 = row1.createCell(0);
        cell1.setCellValue("Merge Example");

        // 셀 병합
        sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 4));

        // 파일로 저장
        try (FileOutputStream outputStream = new FileOutputStream("example.xlsx")) {
            workbook.write(outputStream);
            workbook.close();
            System.out.println("Excel 파일이 생성되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위의 코드에서는 Workbook을 생성한 후, Sheet을 생성하여 데이터를 입력하고, addMergedRegion() 메서드를 사용하여 셀을 병합하고 있습니다. 마지막으로 Workbook을 파일로 저장합니다.

실행하면 example.xlsx 파일이 생성되며, 셀 A1부터 A2까지 병합된 상태로 출력됩니다.

결론

Apache POI를 사용하면 Java에서 Excel 파일의 셀을 병합하는 작업을 간단하게 수행할 수 있습니다. 이를 통해 데이터를 보다 효율적으로 표시하고, 보고서 및 업무 자동화 등 다양한 용도로 활용할 수 있습니다.

참고 자료