我想使用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 functionpython-pptx workaround function会发现一些示例。

关于python - 可以使用python-docx在特定位置插入行吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46215464/

10-11 04:20
查看更多