我想使用python-docx
在表中间插入几行。有什么办法吗?我尝试使用similar to inserting pictures approach,但是没有用。
如果不是这样,那么我希望您能获得有关哪个模块更适合此任务的任何提示。谢谢。
这是我模仿插入图片的想法的尝试。这是错的。 “运行”对象没有属性“add_row”。
from docx import Document
doc = Document('your docx file')
tables = doc.tables
p = tables[1].rows[4].cells[0].add_paragraph()
r = p.add_run()
r.add_row()
doc.save('test.docx')
最佳答案
简短的答案是“否”。API中没有Table.insert_row()
方法。
一种可能的方法是编写一个所谓的“变通方法”,该方法直接操作基础XML。您可以从<w:tbl>
代理对象访问任何给定的XML元素(例如,在本例中为<w:tr>
或python-docx
)。例如:
tbl = table._tbl
这为您提供了XML层次结构的起点。在这里,您可以从头开始或通过复制来创建新元素,并使用
lxml._Element
API调用将其放置在XML中的正确位置。这是一种高级方法,但可能是最简单的选择。据我所知,没有其他Python软件包可以提供更广泛的API。另一种选择是在Windows中使用其COM API或VBA中的任何东西(可能是IronPython)来做某事。那只能在运行Windows OS的小规模(台式机,而不是服务器)上工作。
搜索
python-docx workaround function
和python-pptx workaround function
会发现一些示例。关于python - 可以使用python-docx在特定位置插入行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46215464/