当前位置: 代码网 > it编程>前端脚本>Python > 使用Python设置Excel工作簿的内置文档属性与自定义文档属性

使用Python设置Excel工作簿的内置文档属性与自定义文档属性

2026年08月25日 Python 我要评论
在企业文档管理、报表归档、数据资产盘点等场景中,为 excel 文件添加统一的元数据(如部门、版本号、负责人、创建时间)是非常有必要的。规范的文件属性不仅方便在文件管理系统或协同平台中检索和分类,也能

在企业文档管理、报表归档、数据资产盘点等场景中,为 excel 文件添加统一的元数据(如部门、版本号、负责人、创建时间)是非常有必要的。规范的文件属性不仅方便在文件管理系统或协同平台中检索和分类,也能在文档流转时保留关键的背景信息。手动为大量 excel 文件逐个填写属性既繁琐又容易遗漏,通过 python 编程方式则可以批量为工作簿设置属性,确保元数据的一致性和完整性。本文将介绍如何使用 python 设置 excel 工作簿的内置文档属性与自定义文档属性。

环境准备

本文使用 spire.xls for python 库来操作 excel 文件。该库提供了 documentpropertiescustomdocumentproperties 两个属性集合,分别用于管理 excel 预定义的内置属性和用户自定义的文档属性,并支持字符串、数字、日期、布尔值等多种数据类型。

通过以下命令安装:

pip install spire.xls

安装完成后,在脚本中导入所需模块即可开始使用。

设置内置文档属性

内置属性是 excel 规范中预定义的元数据字段,包括标题(title)、作者(author)、主题(subject)、关键字(keywords)、类别(category)、公司(company)以及备注(comments)等。在 windows 文件属性页或 office 详细信息面板中,这些字段可以直接被系统和办公软件读取展示。

通过操作 workbook.documentproperties 对象的对应属性,可以直接为 excel 文档写入内置元数据:

from spire.xls import *
from spire.xls.common import *

inputfile = "/示例.xlsx"
outputfile = "/设置内置属性.xlsx"

# 创建workbook对象
workbook = workbook()

# 加载excel文档
workbook.loadfromfile(inputfile)

# 设置excel内置属性
workbook.documentproperties.author = "陈文"
workbook.documentproperties.title = "设置excel文档属性"
workbook.documentproperties.subject = "python操作excel文件"
workbook.documentproperties.keywords = "python, excel, 文档属性, 示例"
workbook.documentproperties.category = "处理 excel 文件"
workbook.documentproperties.company = "e-iceblue"
workbook.documentproperties.comments = "文档属性是指描述和标识文档的各种信息。"

# 保存结果文件
workbook.savetofile(outputfile, fileformat.version2016)
workbook.dispose()

直接对 authortitle 等字段赋值即可完成写入。保存后,这些信息将永久固化在文件的元数据区域中。

设置自定义文档属性

除了预定义的内置属性外,业务场景中往往需要记录特定的附加信息(如内部编号、审核状态、最后修改时间等)。spire.xls 通过 customdocumentproperties 集合的 add() 方法来添加自定义键值对。

每次调用 add() 只需传入属性名和属性值,底层引擎会自动根据传入值的类型推断并存储对应的数据类型:

from spire.xls import *
from spire.xls.common import *

inputfile = "示例.xlsx"
outputfile = "excel自定义属性.xlsx"

# 创建workbook对象
workbook = workbook()

# 加载excel文档
workbook.loadfromfile(inputfile)

# 为excel文档添加自定义属性
workbook.customdocumentproperties.add("_markasfinal", true)
workbook.customdocumentproperties.add("编辑者", "e-iceblue")
workbook.customdocumentproperties.add("电话号码", 81705109)
workbook.customdocumentproperties.add("修订编号", 7.12)
workbook.customdocumentproperties.add("修订日期", datetime.get_now())

# 保存结果文件
workbook.savetofile(outputfile, fileformat.version2016)
workbook.dispose()

代码中的 add() 方法支持多种原生及 sdk 对应的数据类型:

  • 布尔值 true/false:如 _markasfinal 用于标记文档是否为最终版本。
  • 字符串:如 "e-iceblue" 用于存储文本格式的编辑者名称。
  • 整型:如 81705109 存储为整数。
  • 浮点型:如 7.12 存储为双精度浮点数。
  • 日期时间:使用 datetime.get_now() 存入当前系统时间。

开发者无需显式声明属性的数据类型,传入相应类型的变量即可完成映射。

实用技巧:批量设置多个文件的文档属性

结合 python 内置的 os 模块,可以将上述属性设置逻辑应用到文件夹下的所有文档中,实现自动化的批量处理:

import os
from spire.xls import *
from spire.xls.common import *

folder = "./demos/data/excelfiles"
output_folder = "./demos/data/output"

if not os.path.exists(output_folder):
    os.makedirs(output_folder)

for filename in os.listdir(folder):
    if filename.endswith(".xlsx"):
        file_path = os.path.join(folder, filename)
        workbook = workbook()
        workbook.loadfromfile(file_path)
        
        # 批量写入内置属性与自定义属性
        workbook.documentproperties.company = "财务部"
        workbook.customdocumentproperties.add("归档年份", 2026)
        workbook.customdocumentproperties.add("审核状态", "已通过")
        
        save_path = os.path.join(output_folder, filename)
        workbook.savetofile(save_path, fileformat.version2016)
        workbook.dispose()
        print(f"已更新属性: {filename}")

该脚本遍历目录下的每个 excel 文件,统一写入公司名称及自定义归档信息。处理完单个文件后立即调用 dispose() 释放内存,保证在大批量文件操作时系统的稳定运行。

常见问题解答

q1:如何修改已经存在的内置或自定义属性?

  • 内置属性:直接对该属性重新赋值即可覆盖旧值,例如 workbook.documentproperties.author = "新作者"
  • 自定义属性:如果直接重新调用 add("属性名", 新值),同名属性会被更新覆盖;或者可以通过 workbook.customdocumentproperties["属性名"].value = 新值 来显式修改。

q2:添加的自定义属性在 microsoft excel 中如何查看?

在 microsoft excel 中打开保存的文件,点击 文件 -> 信息 -> 属性 -> 高级属性,在弹出的窗口中选择 自定义 选项卡,即可在列表中查看到添加的键值对及其对应的数据类型和内容。

q3:为什么有些自定义属性名称前会带有下划线(如 _markasfinal)?

以下划线开头的自定义属性通常是 microsoft office 的约定标记。例如 _markasfinal 设置为 true 时,excel 打开文件时会在顶部提示“作者已将此文档标记为最终版本”,以提醒用户防止误修改。

q4:设置文档属性时对 excel 的文件格式(.xls 与 .xlsx)有限制吗?

没有限制。spire.xls 同时支持基于二进制的 .xls (version97-2003) 以及基于 openxml 的 .xlsx (version2010/2013/2016 等)。只需在 savetofile() 时传入对应的 fileformatexcelversion 即可。

总结

通过 python 为 excel 文件配置元数据是实现企业文档规范化与自动化管理的高效途径。本文系统演示了利用内置属性配置作者、标题及公司等基础信息,并结合自定义属性灵活扩展布尔、数值、文本和日期等多种业务元数据的全过程。配合文件系统的遍历逻辑,开发者可以轻松实现海量 excel 文件的自动化属性写入。在实际应用中,合理设计并统一规范属性命名体系,能够大幅提升后续在文档归档、数据资产分类及自动化检索等场景下的管理效率。

以上就是使用python设置excel工作簿的内置文档属性与自定义文档属性的详细内容,更多关于python设置excel属性的资料请关注代码网其它相关文章!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2026  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com