【问题标题】:The run.bold returns none if entire content in the table cell is bold如果表格单元格中的全部内容为粗体,则 run.bold 返回 none
【发布时间】:2017-01-20 12:44:17
【问题描述】:

我正在尝试使用 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)

【问题讨论】:

    标签: python ms-word python-docx


    【解决方案1】:

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

    无论如何,python-docx 不会报告运行的“有效粗体”,而只报告是否明确应用了粗体。

    【讨论】:

    • 那么如何检查整个单元格文本是否为粗体。我什至尝试了 document.xml,但在 标记中找不到任何 标记。
    • 我会怀疑是字符样式、段落样式或表格样式;以该顺序。寻找名称中带有“样式”的标签,可能是pStylecharStyle。如果您想深入了解它,此页面可能会有所帮助:python-docx.readthedocs.io/en/latest/user/…
    • 还有这个以及通过每页上的“下一步”按钮跟随它的几个:python-docx.readthedocs.io/en/latest/dev/analysis/features/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多