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

Python-docx检测表格文本hidden属性报错及文本替换问题

报错原因

你当前循环中定义的i是整数类型的索引值,本身不存在font属性,你需要通过索引取到对应的run对象后,再读取隐藏属性做判断。

修正后的代码

import re
# 提前编译你的正则规则,提升运行效率
regx = re.compile(r'替换为你实际使用的正则匹配规则')

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            for p in cell.paragraphs:
                # 直接遍历run对象,不需要额外获取索引
                for run in p.runs:
                    # 跳过隐藏文本,未明确设置hidden属性时默认值为None,按非隐藏处理
                    if run.font.hidden:
                        continue
                    # 正则替换需使用re.sub,不要用字符串原生的replace方法
                    run.text = regx.sub('Abcd', run.text)

额外说明

  • 如果你仍要保留原来的索引遍历写法,只需要把i.font.hidden修改为inline[i].font.hidden即可解决报错
  • 部分未显式设置隐藏属性的文本,font.hidden会返回None,直接判断if run.font.hidden即可兼容这种场景,不需要额外加== True的判断
  • 你原有代码中用字符串replace方法无法实现正则规则匹配,要做正则替换必须使用re.sub方法

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.01 00:15:06