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 天的临时许可证。