Excel 파일은 데이터뿐만 아니라 문서 자체에 대한 부가 정보인 문서 속성(Document Properties) 또는 메타데이터(Metadata)를 포함할 수 있습니다. 이러한 속성은 파일의 제목, 작성자, 회사, 키워드 등을 기록하여 문서를 체계적으로 관리하고 검색을 용이하게 하는 데 도움을 줍니다. 이 글에서는 Java용 Spire.XLS for Java 라이브러리를 사용하여 Excel 파일에 표준 속성(Standard/Built-in Properties)과 사용자 정의 속성(Custom Properties)을 추가하는 방법을 알아보겠습니다.
프로젝트에서 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 파일을 직접 내려받아 프로젝트의 클래스패스에 추가할 수도 있습니다.
표준 문서 속성(Standard Document Properties)은 Microsoft Excel에서 미리 정의한 필드로, 제목(Title), 주제(Subject), 작성자(Author), 회사(Company), 관리자(Manager), 키워드(Keywords), 범주(Category) 등이 포함됩니다. 이러한 속성들은 파일 탐색기나 Excel의 '파일 > 정보' 메뉴에서 확인할 수 있습니다.
주요 단계:
1. Workbook 객체를 생성하고 loadFromFile()로 Excel 파일을 로드합니다.
2. getDocumentProperties() 메서드로 속성 컬렉션에 접근합니다.
3. setTitle(), setAuthor() 등 각 속성에 해당하는 setter 메서드를 사용하여 값을 설정합니다.
4. saveToFile()로 변경 사항을 저장합니다.
예제 코드:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class AddStandardDocumentProperties {
public static void main(String[] args) {
// Workbook 객체 생성 및 Excel 파일 로드
Workbook workbook = new Workbook();
workbook.loadFromFile("Input.xlsx");
// 표준 문서 속성 추가
workbook.getDocumentProperties().setTitle("Add Document Properties");
workbook.getDocumentProperties().setSubject("Spire.XLS for Java Demo");
workbook.getDocumentProperties().setAuthor("Shaun");
workbook.getDocumentProperties().setManager("Bill");
workbook.getDocumentProperties().setCompany("E-iceblue");
workbook.getDocumentProperties().setCategory("Spire.XLS for Java");
workbook.getDocumentProperties().setKeywords("Excel Document Properties");
// 결과 파일 저장
workbook.saveToFile("AddStandardDocumentProperties.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}
이 코드는 기존 Excel 파일에 표준 속성들을 추가하고 새로운 파일로 저장합니다.
사용자 정의 문서 속성(Custom Document Properties)은 표준 속성 외에 사용자가 직접 정의하여 필요한 추가 정보를 저장할 수 있는 필드입니다. 예를 들어 프로젝트 ID, 문서 버전, 승인 상태, 부서 코드 등을 저장하는 데 유용합니다. 사용자 정의 속성은 이름(Name)과 값(Value), 그리고 데이터 타입(텍스트, 숫자, 날짜, 예/아니오)으로 구성됩니다.
주요 단계:
1. Workbook 객체를 생성하고 Excel 파일을 로드합니다.
2. getCustomDocumentProperties() 메서드로 사용자 정의 속성 컬렉션에 접근합니다.
3. add() 메서드를 사용하여 속성 이름과 값을 추가합니다. 이때 값의 타입에 따라 적절한 메서드 오버로드를 사용합니다.
4. saveToFile()로 변경 사항을 저장합니다.
예제 코드:
import com.spire.xls.ExcelVersion;
import com.spire.xls.Workbook;
public class AddCustomDocumentProperties {
public static void main(String[] args) {
// Workbook 객체 생성 및 Excel 파일 로드
Workbook workbook = new Workbook();
workbook.loadFromFile("Input.xlsx");
// 사용자 정의 문서 속성 추가
// - 텍스트 타입
workbook.getCustomDocumentProperties().add("DocumentID", "DOC-2026-0042");
// - 텍스트 타입
workbook.getCustomDocumentProperties().add("ApprovalStatus", "Approved");
// - 숫자 타입
workbook.getCustomDocumentProperties().add("RevisionNumber", 3);
// - 날짜 타입
workbook.getCustomDocumentProperties().add("ProcessedDate", new java.util.Date());
// - 불리언 (예/아니오) 타입
workbook.getCustomDocumentProperties().add("IsConfidential", true);
// 결과 파일 저장
workbook.saveToFile("AddCustomDocumentProperties.xlsx", ExcelVersion.Version2016);
workbook.dispose();
}
}
이 예제는 다양한 데이터 타입의 사용자 정의 속성을 Excel 파일에 추가합니다.
POIXMLProperties와 같은 추가적인 클래스들을 사용해야 하며 더 많은 코드가 필요할 수 있습니다. Aspose.Cells는 상용 제품으로, getBuiltInDocumentProperties() 및 getCustomDocumentProperties() 메서드를 통해 유사한 기능을 제공합니다. 각 라이브러리의 특징과 라이선스 정책을 프로젝트 환경에 맞게 비교하여 선택하는 것이 좋습니다.이 글에서는 Spire.XLS for Java를 사용하여 Excel 파일에 표준 문서 속성과 사용자 정의 문서 속성을 추가하는 방법을 코드 예제와 함께 살펴보았습니다. getDocumentProperties()와 getCustomDocumentProperties() 메서드를 통해 간단하게 문서의 메타데이터를 설정할 수 있으며, 이는 파일 관리 및 검색 효율성을 높이는 데 기여합니다.