Python docx:为来自 docx 的 table 设置 'Preferred Width'

Python docx: Setting 'Preferred Width' for a table from docx

我有一个使用 docx 将图片放入 table 的应用程序。一切正常,除了 table 从左边距到右边距。

如果我在 Word 中手动创建 table,我可以右键单击 table 以进入“Table 属性”。然后在“Table”选项卡下,在“大小”中,我可以单击“首选宽度”复选框并将宽度设置为您想要的任何大小。由于段落设置为居中,table 在边距之间居中但不延伸到边距。

我似乎无法在 docx 中找到类似的机制。有吗?或者有其他方法可以完成同样的事情吗?

尝试将每个单元格设置为其所在列的所需宽度。

对“table-width”和“column-width”等值的解释因客户端(例如 Microsoft Word、Open Office、Google Docs)而异,设置单元格宽度似乎是最小公分母。您只需要遍历 table 并设置所有这些。 This other SO answer给出了一些示例代码:

关于居中,我不确定您在那里所做的工作(手动)在 Word 中是否有效。你提到“......段落......”但每个单元格可以有一个或多个段落,所以我不确定你在哪一个段落居中(另外,table 不能嵌入段落中) .我怀疑您实际上将 table 居中,它可能使用相同的工具栏按钮。

我想这就是你想要的 python-docx:

from docx.enum.table import WD_TABLE_ALIGNMENT
table.alignment = WD_TABLE_ALIGNMENT.CENTER