替换Python 3中docx表中的文本

时间:2016-11-01 22:03:23

标签: python python-3.x python-docx

我正在使用python-docx并尝试替换表格保存样式中的文本。 that's how my table looks

我已经设法使用此替换段落:

from docx import Document
def replace_string(doc, to_replace, replacement):
    for p in doc.paragraphs:
        if to_replace in p.text:
            inline = p.runs
            for i in range(len(inline)):
                if to_replace in inline[i].text:
                    text = inline[i].text.replace(to_replace, replacement)
                    inline[i].text = text
    return 1

但它不适用于表格和单元格。我也试过这个:

def replace_in_table(doc, to_replace, replacement):
for table in doc.tables:
    for cell in table.cells:
        for p in cell.paragaphs:
            if to_replace in p.text:
                inline = p.runs
                for i in range(len(inline)):
                    if to_replace in inline[i].text:
                        text = inline[i].text.replace(to_replace, replacement)
                        inline[i].text = text
return 1

但我有一个AttributeError:'Table'对象没有属性'cells'。 请帮我解决这个问题

1 个答案:

答案 0 :(得分:2)

看着他们的docs你可能需要做这样的事情:

for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
           ...