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

Apache POI는 Java에서 Microsoft Office 파일을 조작하는 데 사용되는 라이브러리입니다. 이 라이브러리를 사용하여 Excel 파일에 새로운 열을 추가하는 방법을 알아보겠습니다.

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

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

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

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

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

2. Excel 파일 열 추가하기

Excel 파일을 열어 새로운 열을 추가하는 예제 코드입니다.

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

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

public class ExcelColumnAdder {

    public static void main(String[] args) {
        String filename = "path/to/excel-file.xlsx";

        try (FileInputStream fis = new FileInputStream(filename);
             Workbook workbook = new XSSFWorkbook(fis)) {

            Sheet sheet = workbook.getSheetAt(0); // 첫 번째 시트 가져오기

            // 새로운 열 추가
            Row headerRow = sheet.getRow(0); // 헤더 행 가져오기
            int lastCellNum = headerRow.getLastCellNum(); // 마지막 셀 인덱스
            Cell newColumn = headerRow.createCell(lastCellNum); // 새로운 열 생성
            newColumn.setCellValue("New Column"); // 새로운 열의 값을 설정

            // 수정된 내용을 파일에 쓰기
            try (FileOutputStream fos = new FileOutputStream(filename)) {
                workbook.write(fos);
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

}

위의 코드에서 path/to/excel-file.xlsx는 수정할 Excel 파일의 경로로 바꿔야 합니다. 이 코드는 첫 번째 시트의 헤더 행 아래에 “New Column”이라는 이름의 새로운 열을 추가합니다. 추가한 후에는 원래 파일에 수정 내용이 저장됩니다.

3. 실행 결과 확인하기

코드를 실행하고 Excel 파일을 열어 새로운 열이 추가되었는지 확인하세요. 열이 추가되면 Apache POI를 사용하여 Excel 파일에 열을 추가하는 방법을 잘 이해한 것입니다.

결론

Apache POI를 사용하여 Java에서 Excel 파일에 열을 추가하는 방법을 배웠습니다. 이를 응용하여 Excel 파일을 조작하는 다양한 작업을 수행할 수 있습니다. 추가적인 작업을 위해서는 Apache POI의 문서와 예제를 참조하세요.

참고: