如何获取.xlsx格式Excel文件的作者、上次保存者等元数据
xlsx格式Excel文件元数据读取方案
xlrd 对 xlsx 格式的元数据支持能力有限,仅能读取上次保存者等少量字段,推荐使用以下两种方案获取完整的属性面板「来源」分类下的所有元数据:
方法1:使用 openpyxl 读取内置文档元数据(跨平台可用)
直接读取 xlsx 包内自带的核心属性字段,覆盖绝大多数来源类元数据需求:
首先安装依赖:pip install openpyxl
示例代码:from openpyxl import load_workbook # 只读模式加载文件,速度更快 wb = load_workbook('你的文件路径.xlsx', read_only=True) core_props = wb.properties # 来源分类下常见属性获取 print("文件作者:", core_props.creator) print("上次保存者:", core_props.lastModifiedBy) # 与你之前用xlrd取到的file.user_name结果一致 print("创建时间:", core_props.created) print("最后修改时间:", core_props.modified) print("修订次数:", core_props.revision) print("标题:", core_props.title) print("主题:", core_props.subject) print("类别:", core_props.category) print("备注:", core_props.description) print("所属公司:", core_props.company) print("关键字:", core_props.keywords)方法2:Windows平台读取系统层面文件属性(可获取右键属性面板全部字段)
若需要读取系统级附加的属性,可调用Windows Shell接口实现,覆盖属性面板所有可见字段:
首先安装依赖:pip install pywin32
示例代码:import win32com.client shell = win32com.client.Dispatch("Shell.Application") # 替换为你的文件所在文件夹的绝对路径 folder = shell.NameSpace('C:\\xxx\\文件所在文件夹') # 替换为你的Excel文件名 file = folder.ParseName('测试文件.xlsx') # 遍历获取所有来源分类属性 target_props = ["作者", "上次保存者", "修订号", "项目", "来源", "创建日期", "修改日期", "公司"] for idx in range(300): prop_name = folder.GetDetailsOf(None, idx) if prop_name in target_props: prop_value = folder.GetDetailsOf(file, idx) print(f"{prop_name}:{prop_value}")
内容的提问来源于stack exchange,提问作者red_eyes
相关产品推荐
相关产品推荐

