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

如何使用Python从Word申请表提取字段数据至DataFrame

从Word申请表提取字段到Python DataFrame的实现方案

适用库推荐

  • python-docx:专门处理.docx格式Word文档,能读取文本、内容控件等元素
  • pandas:用于创建和操作DataFrame,是处理结构化数据的必备工具

先执行安装命令:

pip install python-docx pandas

情况1:结构化Word表单(带内容控件)

如果申请表是用Word内置的内容控件(文本框、下拉选择框等)制作的,直接读取控件值即可,这种方式最准确。

代码实现

import docx
import pandas as pd

def extract_structured_form(doc_path):
    doc = docx.Document(doc_path)
    form_data = {}
    # 遍历所有内容控件,匹配目标字段
    for control in doc.content_control_elements:
        target_fields = ["Name", "Designation", "Annual Salary"]
        if control.title in target_fields:
            form_data[control.title] = control.text
    # 转换为DataFrame
    return pd.DataFrame([form_data])

# 调用示例
result_df = extract_structured_form("application_form.docx")
print(result_df)
# 通过字段键调用值:print(result_df["Name"][0])

情况2:普通文本格式申请表

如果申请表是纯文本排版(比如字段和值以字段名: 内容的形式存在,例如Name: John Doe),可以用正则表达式匹配提取。

代码实现

import docx
import pandas as pd
import re

def extract_text_based_form(doc_path):
    doc = docx.Document(doc_path)
    # 提取文档所有文本
    full_text = "\n".join([para.text for para in doc.paragraphs])
    # 定义字段匹配规则,根据你的表单格式调整
    field_rules = {
        "Name": r"Name:\s*(.*)",
        "Designation": r"Designation:\s*(.*)",
        "Annual Salary": r"Annual Salary:\s*(.*)"
    }
    form_data = {}
    for field, pattern in field_rules.items():
        match = re.search(pattern, full_text)
        form_data[field] = match.group(1).strip() if match else None
    # 转换为DataFrame
    return pd.DataFrame([form_data])

# 调用示例
result_df = extract_text_based_form("application_form.docx")
print(result_df)
# 调用字段值:print(result_df["Annual Salary"][0])

额外注意事项

  • 若你处理的是旧版.doc格式文档,python-docx不支持,建议先将文件批量转成.docx格式,或在Windows环境下使用pywin32库处理
  • 正则表达式需根据表单实际排版调整,比如中文表单可能用全角冒号:,要对应修改规则里的符号
  • 若需处理多个申请表,可循环遍历文件列表,将每个表单的数据存入列表,最后统一转换为DataFrame

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 02:00:13