[java] Java Apache POI를 사용하여 Excel 파일의 시트 이름 변경하기
이 문서에서는 Java Apache POI를 사용하여 Excel 파일(.xlsx)의 시트 이름을 변경하는 방법에 대해 알아보겠습니다. Apache POI는 Java에서 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>
의존성 설정 후, Maven을 통해 의존성을 다운로드 및 설치해주세요.
2. Excel 파일에서 시트 이름 변경하기
Apache POI를 사용하여 Excel 파일의 시트 이름을 변경하려면 다음 단계를 따릅니다.
2.1. Excel 파일 읽기
FileInputStream file = new FileInputStream(new File("경로/파일명.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
위의 코드를 사용하여 Excel 파일을 읽고, Workbook
객체를 생성합니다.
2.2. 시트 이름 변경하기
Sheet sheet = workbook.getSheetAt(0); // 변경할 시트 인덱스
workbook.setSheetName(0, "새 시트 이름"); // 변경할 시트 이름
위의 코드에서 getSheetAt(0)
은 변경할 시트의 인덱스를 가져오는 메소드입니다. 첫 번째 시트를 변경할 경우 0을 사용하면 됩니다. setSheetName(0, "새 시트 이름")
은 시트의 이름을 변경하는 메소드입니다. 첫 번째 인자는 변경할 시트의 인덱스, 두 번째 인자는 변경할 시트의 새로운 이름입니다.
2.3. 변경된 내용 저장하기
FileOutputStream outFile =new FileOutputStream(new File("경로/파일명.xlsx"));
workbook.write(outFile);
outFile.close();
시트 이름을 변경한 후, write()
메소드를 사용하여 변경된 내용을 저장합니다.
3. 전체 코드 예시
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
public class ExcelSheetRenameExample {
public static void main(String[] args) {
try {
FileInputStream file = new FileInputStream(new File("경로/파일명.xlsx"));
Workbook workbook = new XSSFWorkbook(file);
Sheet sheet = workbook.getSheetAt(0); // 변경할 시트 인덱스
workbook.setSheetName(0, "새 시트 이름"); // 변경할 시트 이름
FileOutputStream outFile =new FileOutputStream(new File("경로/파일명.xlsx"));
workbook.write(outFile);
outFile.close();
workbook.close();
file.close();
System.out.println("시트 이름 변경 완료");
} catch (IOException e) {
e.printStackTrace();
}
}
}
위의 전체 코드는 Excel 파일에서 첫 번째 시트의 이름을 “새 시트 이름”으로 변경하는 예시입니다. 코드를 실행하면 변경된 파일을 확인할 수 있습니다.