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

如何用Python获取docx文档中复选框的w:default属性值?

解决python-docx获取Word复选框默认勾选状态的问题

你的问题核心是对Word XML结构的理解偏差:

  • w:checkBox元素本身没有w:val和w:default属性
  • w:default是w:checkBox的子元素,w:val才是w:default元素的属性

修正后的代码

from docx import Document
from docx.oxml.ns import qn

# 使用原始字符串避免路径转义问题
document = Document(r'C:\MyTest\onecheckbox.docx')

doc_elm = document._element
check_boxes = doc_elm.xpath('.//w:checkBox')

for check_box in check_boxes:
    # 定位w:checkBox下的w:default子元素
    default_elem = check_box.find(qn('w:default'))
    if default_elem is not None:
        # 从w:default元素中取出w:val属性值
        default_val = default_elem.get(qn('w:val'))
        print(f"复选框默认状态值: {default_val} (1=已勾选, 0=未勾选)")
    else:
        print("该复选框未设置默认状态")

关键说明

  1. 路径处理:文件路径用原始字符串r'...',避免反斜杠被解析为转义字符
  2. 子元素查找:通过find(qn('w:default'))定位w:checkBox下的目标子元素
  3. 属性提取:从找到的w:default元素中调用get(qn('w:val'))获取实际状态值

如果需要获取复选框的当前实际勾选状态(而非默认值),注意Word会将实时状态存在w:checked元素中,可调整代码查找该元素来获取实时状态。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 01:02:10