Office Open XML(OOXML)은 Microsoft Office 2007부터 도입된, ZIP으로 압축된 XML 기반의 문서 형식입니다. Excel(.xlsx), Word(.docx), PowerPoint(.pptx) 파일이 이 표준을 따릅니다. 이 형식은 기존의 이진 파일 형식(.xls)에 비해 데이터 호환성과 보안, 구조적 투명성에서 장점을 가집니다.
개발을 하다 보면 다양한 플랫폼과 애플리케이션에서 데이터를 읽을 수 있도록 Excel 파일을 OOXML로 변환하거나, 반대로 OOXML 데이터를 Excel 형식으로 변환하여 데이터 계산이나 추가 편집을 해야 하는 경우가 있습니다. 이 글에서는 Java용 Spire.XLS 라이브러리를 사용하여 Excel과 Office Open XML 간의 변환을 수행하는 방법을 소개합니다.
프로젝트에서 Spire.XLS for Java를 사용하려면 우선 라이브러리를 의존성에 추가해야 합니다. 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 파일을 다운로드하여 프로젝트의 클래스패스에 추가할 수도 있습니다.
Excel 파일을 OOXML 형식(확장자 .xml)으로 저장하는 과정은 Workbook 클래스를 통해 처리할 수 있습니다.
주요 단계:
1. Workbook 객체를 생성합니다.
2. loadFromFile() 메서드로 변환할 Excel 파일을 로드합니다.
3. saveAsXml() 메서드를 호출하여 파일을 OOXML 형식으로 저장합니다.
예제 코드:
import com.spire.xls.Workbook;
public class ExcelToOpenXML {
public static void main(String []args){
// Workbook 인스턴스 생성
Workbook workbook = new Workbook();
// Excel 파일 로드
workbook.loadFromFile("Sample.xlsx");
// Office Open XML 파일 형식으로 저장
workbook.saveAsXml("ToXML.xml");
}
}
반대로 OOXML 파일을 Excel 형식(.xlsx)으로 변환하는 과정도 유사합니다.
주요 단계:
1. Workbook 객체를 생성합니다.
2. loadFromXml() 메서드로 OOXML 파일을 로드합니다.
3. saveToFile() 메서드를 호출하여 Excel 파일로 저장합니다. 이때 저장할 Excel 버전을 지정할 수 있습니다.
예제 코드:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class OpenXmlToExcel {
public static void main(String []args){
// Workbook 인스턴스 생성
Workbook workbook = new Workbook();
// Office Open XML 파일 로드
workbook.loadFromXml("ToXML.xml");
// Excel XLSX 파일 형식으로 저장
workbook.saveToFile("ToExcel.xlsx", ExcelVersion.Version2016);
}
}
이 글에서는 Java 환경에서 Spire.XLS for Java를 활용하여 Excel 파일과 Office Open XML 파일을 상호 변환하는 기본적인 방법을 코드 예제와 함께 살펴보았습니다. 몇 줄의 코드만으로 복잡한 파일 형식 간 변환을 처리할 수 있어, 데이터 교환 및 호환성 확보가 필요한 다양한 애플리케이션에서 유용하게 사용될 수 있습니다. 다만 라이브러리 선택 시에는 상용 라이선스와 오픈소스 대안 간의 특성과 제약 조건을 프로젝트 환경에 맞게 신중히 검토하는 것이 필요합니다.