0

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

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

有没有办法用桌子代替它?

4

1 回答 1

1

表格和段落一样,都是块级的内容项,两者只能作为对等项出现。因此,您不能在段落“中”插入表格。您只能在两个段落“之间”(或者当然在开头或结尾)有一个表格。

在我们可以将此功能添加到库之前,这样的事情可能会为您解决问题:

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

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

这有点肮脏,但在我们将该功能添加到库之前,可能足以让您通过。让我们知道它是否适合您:)

于 2014-07-20T22:17:04.150 回答