[java] Apache POI를 사용하여 Excel 파일의 시트 삭제하기

Apache POI는 Java에서 Excel 파일을 다루는 데 사용되는 라이브러리입니다. 이 라이브러리를 사용하면 Java 코드를 통해 Excel 파일을 생성, 수정 및 삭제할 수 있습니다. 이번 포스트에서는 Apache POI를 사용하여 Excel 파일의 시트를 삭제하는 방법에 대해 알아보겠습니다.

1. Apache POI 라이브러리 추가

먼저, Apache POI를 사용하기 위해 해당 라이브러리를 프로젝트에 추가해야 합니다. Maven 기반의 프로젝트라면 pom.xml 파일에 다음 의존성을 추가하세요.

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

Gradle 기반의 프로젝트라면 build.gradle 파일에 다음 의존성을 추가하세요.

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

의존성을 추가한 후 프로젝트를 빌드하여 Apache POI를 사용할 수 있도록 설정합니다.

2. Excel 파일에서 시트 삭제하기

이제 Apache POI를 사용하여 Excel 파일에서 시트를 삭제할 수 있습니다. 다음은 간단한 코드 예시입니다.

import java.io.FileInputStream;
import java.io.FileOutputStream;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory;

public class ExcelSheetDeleter {
    public static void main(String[] args) {
        try {
            // Excel 파일을 읽어옴
            FileInputStream file = new FileInputStream("경로/파일명.xlsx");
            Workbook workbook = WorkbookFactory.create(file);
            
            // 삭제할 시트의 인덱스 또는 이름을 지정
            int sheetIndex = 0; // 첫 번째 시트를 삭제하려면 0을 사용
            // String sheetName = "Sheet1"; // 시트 이름을 사용하여 삭제하려면 주석 해제
            
            // 시트 삭제
            workbook.removeSheetAt(sheetIndex);
            // workbook.removeSheetAt(workbook.getSheetIndex(sheetName)); // 시트 이름을 사용하여 삭제하려면 사용
            
            // 삭제한 내용을 포함하는 새로운 Excel 파일 생성
            FileOutputStream fileOut = new FileOutputStream("경로/새로운_파일명.xlsx");
            workbook.write(fileOut);
            
            // 리소스 정리
            fileOut.close();
            workbook.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}

위의 코드는 파일명.xlsx라는 Excel 파일에서 첫 번째 시트를 삭제하고, 삭제한 내용을 새로운_파일명.xlsx라는 새로운 Excel 파일로 저장하는 예시입니다.

시트를 삭제할 때는 삭제하려는 시트의 인덱스 또는 이름을 사용합니다. 위의 코드에서는 인덱스를 사용하여 첫 번째 시트를 삭제하고 있습니다. 만약 시트 이름을 사용하여 삭제하고 싶다면 주석 처리된 두 번째 방식을 사용하여 코드를 수정하면 됩니다.

위의 코드를 실행하면 원하는 시트가 삭제된 새로운 Excel 파일이 생성됩니다.

이상으로, Apache POI를 사용하여 Excel 파일에서 시트를 삭제하는 방법에 대해 알아보았습니다. Apache POI의 다양한 기능을 활용하여 Excel 파일을 다루는 코드를 작성할 수 있습니다. 추가적인 정보는 Apache POI 공식 문서를 참고해주세요.