【问题标题】:Python docx: Setting 'Preferred Width' for a table from docxPython docx:从 docx 为表格设置“首选宽度”
【发布时间】:2021-06-02 17:16:52
【问题描述】:

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

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

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

【问题讨论】:

    标签: python python-docx


    【解决方案1】:

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

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

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

    我认为这就是你想要的python-docx

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

    【讨论】:

    • 非常有趣的答案。我有类似的问题,但我想将首选宽度设置为 100%,而不是使用英寸或厘米。这怎么可能?
    猜你喜欢
    • 2017-08-20
    • 2021-11-10
    • 1970-01-01
    • 1970-01-01
    • 2019-04-11
    • 1970-01-01
    • 2015-05-28
    • 2015-01-01
    • 1970-01-01
    相关资源
    最近更新 更多