python - 如何用另一个替换段落?
问题描述
我想用另一个 docx 文件中的另一个表替换该表。在搜索过程中,我发现了向下吹可以轻松删除整个表格(段落)的方法。
doc = docx.Document('test.docx')
def delete_paragraph(paragraph):
p = paragraph._element
p.getparent().remove(p)
p._p = p._element = None
delete_paragraph(doc.table[3])
所以,我想它也可以更换。
我尝试编写代码:
doc = docx.Document('test.docx')
stand = docx.Document('stand.docx')
def replace_paragraph(p1, p2):
p1.element = p2._element
replace_paragraph(doc.tables[3],stand.tables[0])
但它没有用。我能怎么做 ?
===更新===
我发现了另一种方法。
from copy import deepcopy
def copy_table_after(table, paragraph):
tbl, p = table._tbl, paragraph._p
new_tbl = deepcopy(tbl)
p.addnext(new_tbl)
先用delete_paragraph删除旧表,再用copy_table_after复制新表。
但是,这种方式必须知道旧表的段落位置。
如果有人知道更好的方法,请告诉我,谢谢。
解决方案
推荐阅读
- javascript - 尝试使用 js 创建一个不和谐的机器人得到错误
- mysql - SQL JOIN, GROUP BY 在多个表上获得 TOP
- python - Django Serializer 显示“字符”:“字典对象 (256)”,而不是实际字符
- mongodb - 如何在 MongoDB 中加入和合并多个集合
- node.js - 使用 heroku desc="No web processes running" 部署错误
- xcode - 查找任何东西的 Xcode 键盘快捷键
- android - 芯片组多排芯片
- ios - 如何在 TableView 单元格中按住按钮时进行 segue
- html - CSS 固定位置在包装器的底部
- google-sheets-formula - Google 表格只计算一次字符