Microsoft Excel의 파일 형식은 크게 두 가지로 나눌 수 있습니다. 하나는 Excel 97-2003에서 사용된 이진 파일 형식인 .xls이고, 다른 하나는 Excel 2007부터 도입된 Office Open XML 기반의 .xlsx입니다. .xlsx 형식은 압축된 XML 구조를 사용하여 파일 크기가 작고, 데이터 복구가 용이하며 호환성이 뛰어난 장점이 있습니다.
이 글에서는 Java용 Spire.XLS 라이브러리를 활용하여 .xls 파일을 .xlsx로, 또는 그 반대로 변환하는 간단한 방법을 코드 예제와 함께 소개합니다. 이 라이브러리는 두 형식을 모두 지원하며, Microsoft Excel이 설치되지 않은 환경에서도 동작합니다.
프로젝트에서 사용할 라이브러리를 의존성에 추가합니다. Maven을 사용하는 경우 pom.xml 파일에 아래 리포지토리와 의존성을 포함시킵니다.
<repositories>
<repository>
<id>com.e-iceblue</id>
<name>e-iceblue</name>
<url>https://repo.e-iceblue.com/nexus/content/groups/public/</url>
</repository>
</repositories>
<dependencies>
<dependency>
<groupId>e-iceblue</groupId>
<artifactId>spire.xls</artifactId>
<version>16.7.3</version>
</dependency>
</dependencies>
Maven을 사용하지 않는다면, JAR 파일을 직접 내려받아 프로젝트의 클래스패스에 추가할 수도 있습니다.
Workbook 클래스를 사용하여 구형 .xls 파일을 새 형식인 .xlsx로 저장할 수 있습니다.
주요 단계:
1. Workbook 객체를 생성합니다.
2. loadFromFile() 메서드로 변환할 .xls 파일을 로드합니다.
3. saveToFile() 메서드를 호출하여 .xlsx 형식으로 저장합니다. 이때 저장할 Excel 버전을 ExcelVersion 열거형으로 지정합니다.
예제 코드:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class ConvertXlsToXlsx {
public static void main(String[] args) {
// Workbook 인스턴스 생성
Workbook workbook = new Workbook();
// XLS 파일 로드
workbook.loadFromFile("Input.xls");
// XLSX 형식으로 저장
workbook.saveToFile("ToXlsx.xlsx", ExcelVersion.Version2016);
}
}
반대로 최신 .xlsx 파일을 구형 .xls 형식으로 변환하는 과정도 동일합니다. 호환성이 중요한 환경에서 유용하게 사용할 수 있습니다.
주요 단계:
1. Workbook 객체를 생성합니다.
2. loadFromFile() 메서드로 변환할 .xlsx 파일을 로드합니다.
3. saveToFile() 메서드를 호출하여 .xls 형식으로 저장합니다. 이때 ExcelVersion.Version97to2003을 지정합니다.
예제 코드:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class ConvertXlsxToXls {
public static void main(String[] args) {
// Workbook 인스턴스 생성
Workbook workbook = new Workbook();
// XLSX 파일 로드
workbook.loadFromFile("Input.xlsx");
// XLS 형식으로 저장 (Excel 97-2003)
workbook.saveToFile("ToXls.xls", ExcelVersion.Version97to2003);
}
}
Java에서 Excel 파일을 처리하는 방법은 이 라이브러리 외에도 다양합니다.
도구 선택 시에는 프로젝트의 라이선스 정책, 처리해야 할 파일의 크기 및 복잡도, 필요한 기능의 범위, 개발 및 유지보수 비용 등을 종합적으로 고려해야 합니다.
이 글에서는 Java용 Spire.XLS 라이브러리를 활용하여 Excel의 두 가지 주요 파일 형식인 .xls와 .xlsx 간의 상호 변환을 수행하는 기본적인 방법을 코드 예제와 함께 살펴보았습니다. Workbook 객체의 loadFromFile()과 saveToFile() 메서드만으로 비교적 간단하게 변환을 처리할 수 있어, 다양한 Excel 버전 간의 데이터 교환 및 호환성 확보가 필요한 애플리케이션에서 유용하게 사용될 수 있습니다. 다만 이 라이브러리는 상용 제품이므로 무료 버전의 제약 사항이나 라이선스 비용을 프로젝트 상황에 맞게 검토해야 하며, Apache POI와 같은 오픈소스 대안과의 비교를 통해 가장 적합한 도구를 선택할 것을 권장합니다. 또한 XLSX에서 XLS로의 변환 시에는 형식 간 기능 차이로 인한 데이터 손실 가능성을 항상 염두에 두어야 합니다.