搜索字符串并使用python-docx库替换

时间:2014-07-20 15:37:22

标签: python python-docx

我想搜索一个单词并用表替换它。 以下代码仅用于字符串:

def paragraph_replace(self, search, replace):
    searchre = re.compile(search)
    for paragraph in self.paragraphs:
        paragraph_text = paragraph.text
        if paragraph_text:
            if searchre.search(paragraph_text):
                paragraph.text = re.sub(search, replace, paragraph_text)
    return paragraph_text

有没有办法用表替换它?

1 个答案:

答案 0 :(得分:1)

表(如段落)是块级内容项,两者只能显示为对等项。因此,您无法在"中插入表格。一个段落。你只能在"之间有一张桌子。两段(或当然的开头或结尾)。

在我们将此功能添加到库中之前,这样的事情可能会对您有所帮助:

table = document.add_table(...)
p = paragraph_to_insert_before._p
p.addprevious(table._tbl)

._p._tbl属性分别是lxmlParagraph对象下的Table元素。 addprevious()方法是lxml方法,在这种情况下,<w:tbl>元素将移动到段落的前一个对等方。如果您想在段落之后使用,可以替换addnext()

这是一个肮脏的黑客,但也许足以让你,直到我们将该功能添加到库。如果它适合您,请告诉我们:)