excel 文件的文档属性包含了额外的元数据信息,如作者、标题、主题等。获取这些属性可以帮助用户了解文件的内容和历史,从而更好地组织和管理文件。有时,用户也需要删除这些文档属性,以保护文件中包含的隐私和机密信息。在本文中,我们将介绍如何使用 spire.xls for python 在 python 中获取或删除 excel 文件的文档属性。
安装 spire.xls for python
此教程需要 spire.xls for python 和 plum-dispatch v1.7.4。您可以通过以下 pip 命令将它们轻松安装到 windows 中。
pip install spire.xls
如果您不确定如何安装,请参考: 如何在 windows 中安装 spire.xls for python
python 获取 excel 文件的标准和自定义文档属性
excel 文档属性分为两大类:
- 标准文档属性:这些是内置在 excel 文件中的预定义文档属性。它们通常包括文件的基本信息,如标题、主题、作者、关键词等。
- 自定义文档属性:这些是用户定义的属性,可根据具体需求添加到 excel 文件中,以跟踪有关文件的其他信息。
spire.xls for python 允许我们读取 excel 文件的标准和自定义文档属性。以下是具体步骤:
- 创建 workbook 实例。
- 使用 workbook.loadfromfile() 方法加载示例 excel 文件。
- 创建一个列表来存储文档属性。
- 使用 workbook.documentproperties 属性获取所有标准文档属性的集合。
- 使用 builtindocumentproperties 类的属性获取特定的标准文档属性,并将它们添加到列表中。
- 使用 workbook.customdocumentproperties 属性获取所有自定义文档属性的集合。
- 遍历集合。
- 使用 icustomdocumentproperties[].name、icustomdocumentproperties[].propertytype 和 icustomdocumentproperties[].value 属性获取每个自定义文档属性的名称、类型和值。
- 确定特定属性的类型,然后将属性值转换为相应的数据类型。
- 将属性名称和转换后的属性值添加到列表中。
- 将列表的内容写入 txt 文件。
- python
from spire.xls import *
from spire.xls.common import *
def appendalltext(fname: str, text: list[str]):
"""
将文本列表写入指定文件
参数:
fname (str): 文件名
text (list[str]): 文本列表
"""
fp = open(fname, "w")
for s in text:
fp.write(s "\n")
fp.close()
inputfile = "示例.xlsx"
outputfile = "获取文档属性.txt"
# 创建 workbook 实例
workbook = workbook()
# 加载 excel 文档
workbook.loadfromfile(inputfile)
# 创建一个列表来存储文档属性
builder = []
# 获取所有标准文档属性的集合
standardproperties = workbook.documentproperties
# 获取特定的标准属性并添加到列表中
builder.append("标准文档属性:")
builder.append("标题: " standardproperties.title)
builder.append("主题: " standardproperties.subject)
builder.append("类别: " standardproperties.category)
builder.append("关键字: " standardproperties.keywords)
builder.append("备注: " standardproperties.comments)
builder.append("")
# 获取所有自定义文档属性的集合
customproperties = workbook.customdocumentproperties
builder.append("自定义属性:")
# 遍历集合
for i in range(len(customproperties)):
# 获取每个自定义文档属性的名称、类型和值
name = customproperties[i].name
type = customproperties[i].propertytype
obj = customproperties[i].value
# 确定具体的属性类型,并将属性值转换为相应的数据类型
value = none
if type == propertytype.double:
value = double(obj).value
elif type == propertytype.datetime:
value = datetime(obj).toshortdatestring()
elif type == propertytype.bool:
value = boolean(obj).value
elif type == propertytype.int:
value = int32(obj).value
elif type == propertytype.int32:
value = int32(obj).value
else:
value = string(obj).value
# 将属性名称和转换后的属性值添加到列表中
builder.append(name ": " str(value))
# 将列表的内容写入文本文件
appendalltext(outputfile, builder)
workbook.dispose()
python 删除 excel 文件的标准和自定义文档属性
你可以通过将标准文档属性的值设置为空来从 excel 文件中删除它们。对于自定义文档属性,你可以使用 icustomdocumentproperties.remove() 方法将其删除。以下是具体步骤:
- 创建 workbook 实例。
- 使用 workbook.loadfromfile() 方法加载示例 excel 文件。
- 使用 workbook.documentproperties 属性获取所有标准文档属性的集合。
- 通过 builtindocumentproperties 类的相应属性,将特定标准文档属性的值设置为空。
- 使用 workbook.customdocumentproperties 属性获取所有自定义文档属性的集合。
- 遍历集合。
- 通过属性名称使用 icustomdocumentproperties.remove() 方法从集合中删除每个自定义属性。
- 使用 workbook.savetofile() 方法保存结果文件。
- python
from spire.xls import *
from spire.xls.common import *
inputfile = "示例.xlsx"
outputfile = "删除文档属性.xlsx"
# 创建 workbook 实例
workbook = workbook()
# 加载 excel 文档
workbook.loadfromfile(inputfile)
# 获取所有标准文档属性的集合
standardproperties = workbook.documentproperties
# 将每个标准文档属性的值设置为空
standardproperties.title = ""
standardproperties.subject = ""
standardproperties.category = ""
standardproperties.keywords = ""
standardproperties.comments = ""
# 获取所有自定义文档属性的集合
customproperties = workbook.customdocumentproperties
# 倒序遍历集合
for i in range(len(customproperties) - 1, -1, -1):
# 根据属性名称从集合中删除每个自定义文档属性
customproperties.remove(customproperties[i].name)
# 保存结果文件
workbook.savetofile(outputfile, excelversion.version2016)
workbook.dispose()
申请临时 license
如果您希望删除结果文档中的评估消息,或者摆脱功能限制,请该email地址已收到反垃圾邮件插件保护。要显示它您需要在浏览器中启用javascript。获取有效期 30 天的临时许可证。