You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用MS Word VBA的Revisions对象批量提取docx插入内容

提取DOCX文档中修订的插入内容

如果用python-docx库可以直接操作Revisions集合,以下是具体实现方案,覆盖单文档和批量处理场景:

1. 安装依赖

首先安装python-docx库:

pip install python-docx

2. 单文档提取插入内容

编写函数提取单个DOCX中的所有插入修订文本,包含段落和表格内的内容:

from docx import Document
from docx.enum.text import WD_REVISION_TYPE

def extract_inserted_text(doc_path):
    doc = Document(doc_path)
    inserted_texts = []
    
    # 遍历段落修订
    for para in doc.paragraphs:
        for revision in para.revisions:
            if revision.type == WD_REVISION_TYPE.INSERT:
                inserted_texts.append(revision.text)
    
    # 遍历表格单元格内的修订
    for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                for para in cell.paragraphs:
                    for revision in para.revisions:
                        if revision.type == WD_REVISION_TYPE.INSERT:
                            inserted_texts.append(revision.text)
    
    return inserted_texts

3. 批量处理多个DOCX

如果要处理文件夹下所有DOCX文件,可使用以下批量处理代码,结果会保存到汇总文本:

import os

def batch_extract(folder_path):
    results = {}
    for filename in os.listdir(folder_path):
        if filename.lower().endswith(".docx"):
            file_path = os.path.join(folder_path, filename)
            texts = extract_inserted_text(file_path)
            results[filename] = texts
    
    # 保存结果到文件
    with open("插入修订内容汇总.txt", "w", encoding="utf-8") as f:
        for doc_name, texts in results.items():
            f.write(f"=== {doc_name} ===\n")
            if texts:
                for idx, text in enumerate(texts, 1):
                    f.write(f"{idx}. {text}\n")
            else:
                f.write("无插入类型的修订内容\n")
            f.write("\n")

# 替换为你的DOCX文件夹路径
batch_extract("path/to/your/docx/folder")

关键注意事项

  • 确保DOCX的修订记录未被接受/拒绝:一旦修订被接受,Revisions集合中会移除该记录,无法提取
  • 若文档包含文本框、形状等其他容器,需额外遍历对应对象的修订集合(可根据需求扩展代码)
  • 保存结果时使用utf-8编码,避免中文乱码

内容的提问来源于stack exchange,提问作者aaaaa0a

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 11:45:29