[java] Apache POI를 사용하여 Excel 파일에서 이미지 삽입하기

Apache POI는 Java에서 Microsoft Office 파일 형식을 다룰 수 있는 라이브러리입니다. 이 라이브러리를 사용하면 Excel 파일을 읽고 쓸 수 있으며, 이미지를 삽입하는 기능도 제공합니다. 이번 포스트에서는 Apache POI를 사용하여 Excel 파일에 이미지를 삽입하는 방법에 대해 알아보겠습니다.

1. Apache POI 라이브러리 추가하기

먼저, Maven이나 Gradle을 사용하여 Apache POI 라이브러리를 프로젝트에 추가합니다. 아래는 Maven을 사용하는 경우의 예시입니다.

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

2. Excel 파일 생성하기

다음으로, Apache POI를 사용하여 Excel 파일을 생성합니다. 아래는 예제 코드입니다.

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

import java.io.*;

public class ExcelImageInsertion {
    public static void main(String[] args) throws IOException {
        // Excel 파일 생성
        Workbook workbook = new XSSFWorkbook();
        Sheet sheet = workbook.createSheet("Sheet1");

        // 이미지 파일 가져오기
        File imageFile = new File("path/to/image.jpg");
        InputStream inputStream = new FileInputStream(imageFile);
        byte[] imageBytes = IOUtils.toByteArray(inputStream);

        // 이미지를 Excel에 삽입하기
        int pictureIdx = workbook.addPicture(imageBytes, Workbook.PICTURE_TYPE_JPEG);
        CreationHelper helper = workbook.getCreationHelper();
        Drawing<?> drawing = sheet.createDrawingPatriarch();
        ClientAnchor anchor = helper.createClientAnchor();

        // 삽입할 이미지 위치 설정
        anchor.setCol1(0);
        anchor.setRow1(0);

        // 이미지 크기 설정
        Picture pict = drawing.createPicture(anchor, pictureIdx);
        pict.resize();

        // Excel 파일 저장
        FileOutputStream fileOut = new FileOutputStream("path/to/output.xlsx");
        workbook.write(fileOut);
        fileOut.close();

        System.out.println("Excel 파일이 생성되었습니다.");
    }
}

위 코드에서 path/to/image.jpg는 삽입할 이미지 파일의 경로를 나타냅니다. path/to/output.xlsx는 생성되는 Excel 파일의 저장 경로를 나타냅니다.

3. 실행 결과 확인하기

위 코드를 실행하면 지정한 이미지가 Excel 파일에 삽입됩니다. path/to/output.xlsx 파일을 열어서 이미지가 제대로 삽입되었는지 확인해보세요.

마무리

이번 포스트에서는 Apache POI를 사용하여 Excel 파일에 이미지를 삽입하는 방법에 대해 알아보았습니다. Apache POI는 다양한 기능을 제공하므로, 이미지 삽입 외에도 Excel 파일을 다룰 때 유용하게 활용할 수 있습니다. 더 자세한 내용은 Apache POI 공식 문서를 참고해보세요.