python-docx 复制单元格

python-docx Copy Cell

我需要将 tables 的包含文本和图像的单元格复制到另一个文件中的另一个 table。

# -*- coding: utf-8 -*-
from docx import Document

oldDocument = Document("d:/first.docx")

newDocument = Document()
temp = oldDocument.tables[9].rows[1].cells[1]
table = newDocument .add_table(rows=1, cols=1)
table.rows[0].cells[0] = temp
newDocument .save("d:/second.docx")

这是 table

的示例

还有这个错误 TypeError: 'tuple' 对象不支持项目分配

您不能简单地将对象从一个文档复制到另一个文档。 python-docx API 对象是代理对象,这意味着它们是 XML 的包装器,实际上构成了段落、单元格等

您需要阅读源文档中的内容,然后在目标文档中创建所需的结构(如 table、单元格、段落),将内容放在应有的位置。

如果您进入 lxml 层,您也许可以做一些更高级的事情,也许可以复制文本及其所有格式(上标等),但这需要深入研究内部结构并理解底层的 XML 结构。如果您在 'python-docx workaround function' 上搜索,您应该可以找到一些示例来帮助您入门。