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

直接对 author、title 等字段赋值即可完成写入。保存后,这些信息将永久固化在文件的元数据区域中。
设置自定义文档属性
除了预定义的内置属性外,业务场景中往往需要记录特定的附加信息(如内部编号、审核状态、最后修改时间等)。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() 时传入对应的 fileformat 或 excelversion 即可。
总结
通过 python 为 excel 文件配置元数据是实现企业文档规范化与自动化管理的高效途径。本文系统演示了利用内置属性配置作者、标题及公司等基础信息,并结合自定义属性灵活扩展布尔、数值、文本和日期等多种业务元数据的全过程。配合文件系统的遍历逻辑,开发者可以轻松实现海量 excel 文件的自动化属性写入。在实际应用中,合理设计并统一规范属性命名体系,能够大幅提升后续在文档归档、数据资产分类及自动化检索等场景下的管理效率。
以上就是使用python设置excel工作簿的内置文档属性与自定义文档属性的详细内容,更多关于python设置excel属性的资料请关注代码网其它相关文章!
发表评论