python-docx将表对象添加到文档中

时间:2017-10-23 19:22:53

标签: python python-docx

我想将docx.table.Table和docx.text.paragraph.Paragraph对象添加到文档中。 目前

  

table = document.add_table(rows = 2,cols = 2)

将在文档中创建一个新表,而table将保存docx.table.Table对象及其所有属性。

我想要做的是将表OBJECT添加到我之前从其他文档中读取的文档中。

我猜测迭代新添加的表的每个属性和我之前读过的表对象并设置值就足够了,但还有其他方法吗?

谢谢!

1 个答案:

答案 0 :(得分:2)

您的描述会承认一些不同的可能性,但它们都没有python-docx中的直接API支持。

最简单的情况是将表格从python-docx Document对象的一部分复制到同一文档中的另一个位置 。这可以通过对表执行XML的深层复制来完成。有关如何执行此操作的详细信息超出了此问题的范围,但如果您在"python-docx" OR "python-pptx" deepcopy上搜索,则会有一些示例。

更复杂的是在一个Document对象和另一个对象之间复制表。表可能包含源文档中可用的外部引用,但不包含目标文档。因此,在没有定位和解析任何依赖关系的情况下,深度复制方法在这种情况下并不总是有效。

最后,复制/嵌入表OLE对象,例如可能在PowerPoint演示文稿中找到或由Excel文档中的范围形成。不支持嵌入OLE对象,不太可能很快添加,主要是因为OLE格式嵌入格式不明确(没有详细记录)。