[java] Java Apache POI를 사용하여 Excel 파일의 셀 주석 추가하기

Excel 파일에서 셀에 주석을 추가하고 싶다면 Java Apache POI 라이브러리를 사용할 수 있습니다. 이 라이브러리는 Java 언어로 Excel 파일을 다룰 수 있는 기능을 제공합니다. 이번 포스트에서는 Apache POI를 사용하여 Excel 파일의 셀에 주석을 추가하는 방법을 알아보겠습니다.

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

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

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

Gradle 프로젝트라면 build.gradle 파일에 다음과 같은 의존성을 추가합니다.

implementation 'org.apache.poi:poi:5.0.0'

의존성을 추가한 후에는 라이브러리를 사용할 준비가 되었습니다.

2. Excel 파일 열기 및 셀 주석 추가하기

이제 Excel 파일을 열고 셀에 주석을 추가해봅시다. 아래의 코드를 사용하여 셀 주석을 추가하는 방법을 알 수 있습니다.

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

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

public class ExcelCommentExample {

    public static void main(String[] args) {
        String filePath = "path/to/excel_file.xlsx";
        String sheetName = "Sheet1";
        int rowIdx = 0;
        int cellIdx = 0;

        try (Workbook workbook = WorkbookFactory.create(new FileInputStream(filePath))) {
            Sheet sheet = workbook.getSheet(sheetName);
            Row row = sheet.getRow(rowIdx);
            Cell cell = row.getCell(cellIdx);

            // 셀 주석 생성
            Drawing<?> drawing = sheet.createDrawingPatriarch();
            CreationHelper creationHelper = workbook.getCreationHelper();
            ClientAnchor anchor = creationHelper.createClientAnchor();
            Comment comment = drawing.createCellComment(anchor);
            RichTextString commentText = creationHelper.createRichTextString("This is a comment.");
            comment.setString(commentText);

            // 셀에 주석 추가
            cell.setCellComment(comment);

            // 변경된 내용을 저장
            try (FileOutputStream outputStream = new FileOutputStream(filePath)) {
                workbook.write(outputStream);
            }
            
            System.out.println("셀에 주석이 추가되었습니다.");
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

위 코드에서 filePath 변수에는 수정하려는 Excel 파일의 경로를, sheetName 변수에는 수정하려는 시트의 이름을, rowIdx 변수와 cellIdx 변수에는 수정하려는 셀의 인덱스를 각각 입력합니다.

위의 코드를 실행하면 해당 셀에 주석이 추가되고, 주석 내용은 “This is a comment.”로 설정됩니다. 변경된 내용은 원본 Excel 파일에 저장됩니다.

이제 Java Apache POI를 사용하여 Excel 파일의 셀에 주석을 추가하는 방법을 알게 되었습니다. 기존의 Excel 파일을 수정하거나 새로운 Excel 파일을 생성할 때 이 방법을 사용하여 셀에 주석을 추가할 수 있습니다.

참고 자료