使用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 个回答
1
表格就像段落一样,是一种块级内容,二者只能并排出现。因此,你不能把表格“放在”段落里。你只能把表格“放在”两个段落之间(当然,也可以放在开头或结尾)。
在我们将这个功能添加到库之前,像下面这样可能会对你有帮助:
table = document.add_table(...)
p = paragraph_to_insert_before._p
p.addprevious(table._tbl)
._p
和 ._tbl
是分别对应于 Paragraph
和 Table
对象的 lxml
元素。addprevious()
方法是一个 lxml
的方法,在这个情况下,它会把 <w:tbl>
元素移动到段落的前面。如果你想把表格放在段落后面,可以用 addnext()
。
这有点像个小窍门,但或许能帮你暂时解决问题,直到我们把这个功能加到库里。如果有效的话,记得告诉我们哦 :)