Python 如果表格单元格中的全部内容为粗体,run.bold将返回none

Python 如果表格单元格中的全部内容为粗体,run.bold将返回none,python,ms-word,python-docx,Python,Ms Word,Python Docx,我试图使用python docx从MS word文档中检索粗体和红色的内容,但是如果表格单元格中的全部内容都是粗体,并且整个段落都是粗体,则运行run.bold返回None。 如何在python docx中检索单元格格式的详细信息 这是我的密码: for table in WordDoc.tables: for i in xrange(1, len(table.rows)): for para in table.rows[i].cells[0].paragraphs: f

我试图使用python docx从MS word文档中检索粗体和红色的内容,但是如果表格单元格中的全部内容都是粗体,并且整个段落都是粗体,则运行run.bold返回None。 如何在python docx中检索单元格格式的详细信息

这是我的密码:

for table in WordDoc.tables:
for i in xrange(1, len(table.rows)):
    for para in table.rows[i].cells[0].paragraphs:
        for run in para.runs:
            if run.bold:
                print (run.text)

这是预期的行为
Run.bold
仅在将bold显式应用于该段文本时返回
True
。文本以粗体字体显示还有其他几种方式。第一种是应用角色样式的运行。下一个可能是包含它的段落,它具有包含粗体格式的段落样式。还有其他方法,例如编号样式或表格样式,但这是两种最常见的情况


在任何情况下,
python docx
都不会报告运行的“有效粗体”,而是只报告是否显式应用了粗体。

因此,如何检查整个单元格文本是否为粗体。我甚至尝试了document.xml,但在标记中找不到任何标记;按这个顺序。查找名称中带有“style”的标记,可能是
pStyle
charStyle
。如果您想深入研究,本页可能会有所帮助:还有本页以及通过每页上的“下一步”按钮跟随本页的少数几页: