Java实现为Word文档添加文档属性

 更新时间:2026年03月27日 10:51:40   作者:缺点内向  
Word文档的文档属性是一组用于描述文件本身及其内容的元数据,本文以客观方式介绍如何在Java项目中为Word文档添加文档属性,包含环境准备、代码示例和注意事项,适合开发者快速上手

Word文档的文档属性(Document Properties)是一组用于描述文件本身及其内容的元数据,包括内置属性(如标题、作者、主题、关键词、公司等)和自定义属性。这些属性不会直接显示在文档正文中,但对文档的搜索、分类、版本管理和协作非常有用。在Java开发中,通过Spire.Doc for Java库可以直接操作这些属性,无需依赖Microsoft Office环境。本文以客观方式介绍如何在Java项目中为Word文档添加文档属性,包含环境准备、代码示例和注意事项,适合开发者快速上手。

一、环境准备

首先确保开发环境已安装JDK(推荐JDK 8及以上)。Spire.Doc for Java通过JAR包或Maven依赖引入项目。

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.doc</artifactId>
        <version>14.3.5</version>
    </dependency>
</dependencies>

若不使用Maven,可从官网下载Spire.Doc.jar并添加到项目classpath。引入后,即可在代码中使用com.spire.doc包下的类。

二、添加内置文档属性(Built-in Document Properties)

内置文档属性是Microsoft Word预定义的固定属性集,名称不可更改,但值可以设置或修改。常见属性包括Title(标题)、Subject(主题)、Author(作者)、Company(公司)、Keywords(关键词)等。

操作步骤

  • 创建Document实例并加载现有Word文档(或新建空文档)。
  • 通过document.getBuiltinDocumentProperties()获取BuiltinDocumentProperties对象。
  • 调用相应setter方法设置属性值。
  • 调用saveToFile()保存文档。

完整代码示例

import com.spire.doc.BuiltinDocumentProperties;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

public class AddBuiltinDocumentProperties {
    public static void main(String[] args) throws Exception {
        // 创建Document实例并加载Word文档
        Document document = new Document();
        document.loadFromFile("Sample.docx");  // 可替换为实际文件路径

        // 获取内置文档属性对象
        BuiltinDocumentProperties standardProperties = document.getBuiltinDocumentProperties();

        // 设置具体属性值
        standardProperties.setTitle("添加文档属性示例");
        standardProperties.setSubject("Java开发教程");
        standardProperties.setAuthor("开发者姓名");
        standardProperties.setCompany("示例公司");
        standardProperties.setManager("项目经理");
        standardProperties.setCategory("文档处理");
        standardProperties.setKeywords("Java, Word, 文档属性, Spire.Doc");
        standardProperties.setComments("本文演示如何使用Spire.Doc for Java添加内置属性");

        // 保存文档,支持Docx_2013格式
        document.saveToFile("AddStandardProperties.docx", FileFormat.Docx_2013);
        System.out.println("内置文档属性添加完成!");
    }
}

运行后,打开生成的AddStandardProperties.docx,在文件属性(右键→属性→详细信息)中即可看到设置的值。

三、添加自定义文档属性(Custom Document Properties)

自定义文档属性由开发者或用户自行定义,支持名称自由设置,值类型包括文本(String)、日期(Date)、数字(int/long/double等)和布尔(boolean)。这在需要存储特定业务数据(如文档ID、审批状态、自定义标签)时特别实用。

操作步骤

  • 创建Document实例并加载文档。
  • 通过document.getCustomDocumentProperties()获取CustomDocumentProperties对象。
  • 使用add(String name, Object value)方法添加属性(value会自动识别类型)。
  • 保存文档。

完整代码示例

import com.spire.doc.CustomDocumentProperties;
import com.spire.doc.Document;
import com.spire.doc.FileFormat;

import java.util.Date;

public class AddCustomDocumentProperties {
    public static void main(String[] args) throws Exception {
        Document document = new Document();
        document.loadFromFile("Sample.docx");

        // 获取自定义文档属性对象
        CustomDocumentProperties customProperties = document.getCustomDocumentProperties();

        // 添加不同类型的自定义属性
        customProperties.add("文档ID", 2026001);                    // 数字类型
        customProperties.add("已审核", true);                       // 布尔类型
        customProperties.add("审核人", "张工程师");                 // 文本类型
        customProperties.add("审核日期", new Date());               // 日期类型

        // 保存文档
        document.saveToFile("AddCustomProperties.docx", FileFormat.Docx_2013);
        System.out.println("自定义文档属性添加完成!");
    }
}

自定义属性同样可在Word的“文件→信息→属性→高级属性→自定义”标签页中查看和编辑。

四、注意事项与扩展

  • 新建文档 vs 加载现有文档:以上示例均加载现有文件。若需从零创建文档,可使用new Document()后直接添加Section和内容,再设置属性。
  • 文件格式:推荐使用FileFormat.Docx_2013以确保兼容性;旧版.doc也可支持,但属性操作更推荐现代Docx格式。
  • 异常处理:实际项目中建议添加try-catch处理loadFromFilesaveToFile可能出现的IO异常。
  • 属性读取与删除:Spire.Doc for Java还提供getBuiltinDocumentProperties()/getCustomDocumentProperties()读取值,以及remove()方法删除属性,开发者可根据需求扩展。
  • 性能与兼容:操作仅针对内存中的文档对象,适合批量处理场景;生成的文档可在Word 2007及以上版本正常打开。
  • 多文档场景:可循环处理多个文件,或结合模板生成文档时同步设置属性。

最后

通过以上方法,开发者能够精准控制Word文档的元数据,实现文档自动化管理需求。实际开发中,建议结合具体业务场景测试属性在不同Word版本下的显示效果。

到此这篇关于Java实现为Word文档添加文档属性的文章就介绍到这了,更多相关Java Word添加文档属性内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Springboot任务之异步任务的使用详解

    Springboot任务之异步任务的使用详解

    今天学习了一个新技能SpringBoot实现异步任务,所以特地整理了本篇文章,文中有非常详细的介绍及代码示例,需要的朋友可以参考下
    2021-06-06
  • Eclipse Web项目打成war包的方法图解

    Eclipse Web项目打成war包的方法图解

    当Tomcat启动后该压缩文件自动解压缩,war包方便了web工程的发布,那么Eclipse中如何将Web项目打成war包呢?下面小编通过图文并茂的方式给大家讲解下Eclipse Web项目打成war包的方法,一起看看吧
    2016-08-08
  • java final 和instanceof 关键字的区别

    java final 和instanceof 关键字的区别

    这篇文章介绍了java final 和instanceof 关键字的区别,有需要的朋友可以参考一下
    2013-09-09
  • idea中创建多module的maven工程的方法

    idea中创建多module的maven工程的方法

    这篇文章主要介绍了idea中创建多module的maven工程的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-10-10
  • springboot集成redisson的三种方式

    springboot集成redisson的三种方式

    本文主要介绍了springboot集成redisson的三种方式,包含自定义配置+手动注入,使用Yaml方式批量读取配置和spring boot自动配置类这三种,具有一定的参考价值,感兴趣的可以了解一下
    2024-03-03
  • 基于spring data jpa @query返回map的踩坑记录

    基于spring data jpa @query返回map的踩坑记录

    这篇文章主要介绍了基于spring data jpa @query返回map的踩坑记录,具有很好的参考价值,如有错误或未考虑完全的地方,望不吝赐教
    2021-11-11
  • Java concurrency之Condition条件_动力节点Java学院整理

    Java concurrency之Condition条件_动力节点Java学院整理

    Condition的作用是对锁进行更精确的控制。下面通过本文给大家分享Java concurrency之Condition条件的相关知识,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-06-06
  • Hibernate批量处理海量数据的方法

    Hibernate批量处理海量数据的方法

    这篇文章主要介绍了Hibernate批量处理海量数据的方法,较为详细的分析了Hibernate批量处理海量数据的原理与相关实现技巧,需要的朋友可以参考下
    2016-03-03
  • java设计模式之简单工厂模式

    java设计模式之简单工厂模式

    这篇文章主要为大家详细介绍了java设计模式之简单工厂模式,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • java8 stream排序以及自定义比较器方式

    java8 stream排序以及自定义比较器方式

    这篇文章主要介绍了java8 stream排序以及自定义比较器方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03

最新评论