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

0 投票
1 回答
1568 浏览
提问于 2025-04-18 14:01

我想要搜索一个单词,然后把它替换成一个表格。下面的代码只是针对字符串的:

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 个回答

1

表格就像段落一样,是一种块级内容,二者只能并排出现。因此,你不能把表格“放在”段落里。你只能把表格“放在”两个段落之间(当然,也可以放在开头或结尾)。

在我们将这个功能添加到库之前,像下面这样可能会对你有帮助:

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

._p._tbl 是分别对应于 ParagraphTable 对象的 lxml 元素。addprevious() 方法是一个 lxml 的方法,在这个情况下,它会把 <w:tbl> 元素移动到段落的前面。如果你想把表格放在段落后面,可以用 addnext()

这有点像个小窍门,但或许能帮你暂时解决问题,直到我们把这个功能加到库里。如果有效的话,记得告诉我们哦 :)

撰写回答