如何摆脱 python-docx 生成的 Word 文档中表对象的默认样式?

问题描述 投票:0回答:3

根据 python-docx 文档,以下代码生成一个包含三列的简单表格:

table = document.add_table(rows=1, cols=3)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Qty'
hdr_cells[1].text = 'Id'
hdr_cells[2].text = 'Desc'
for item in recordset:
    row_cells = table.add_row().cells
    row_cells[0].text = str(item.qty)
    row_cells[1].text = str(item.id)
    row_cells[2].text = item.desc

但是,row_cells[0] 的默认样式是粗体。如何去掉第一列的特殊样式?

(另外,如果我可以摆脱默认的带状行,那就太好了。)

python ms-word python-docx
3个回答
0
投票

当前版本中此类事情的最佳选择是应用表格样式,例如:

table.style = 'LightShading-Accent1'

可以按照您描述的方式修改Word中的表格样式,例如标题字体、行带等。因此您可以修改现有样式之一以适应或创建您自己的样式。

确保您研究了 python-docx 文档中的这两页,以了解如何在运行时使样式在文档中可用:

http://python-docx.readthedocs.org/en/latest/user/styles.html http://python-docx.readthedocs.org/en/latest/user/documents.html


0
投票

您需要了解文档中的样式

styles = document.styles
for s in styles:
  print(s.name)

然后 试试这个

table2 = document.add_table( rows=15, cols=15,style='Table Grid')

您可以将样式更改为您的文档支持的任何样式

(style='Table Grid')

python 3.4 docx 0.8.6


0
投票

这篇文章写得太晚了,但我遇到了这个问题。我正在通过 python-docx 制作一个新的 word 文档,然后,我尝试从预先存在的文档中添加表格样式,以将样式保留在这个新文档中。

TLDR 它不允许你。但是,没有任何规定您必须开始一个新的 Word 文档。我只是制作了一个空白的 Word 文档,其中包含我想要的所有新表格样式。然后,不要使用:

doc = docx.Document()

我用过:

doc = docx.Document('house_styles.docx')

作为起点。更具体地说,我首先删除了 house_styles.docx 中的所有内容,但我会将其保存给接下来阅读此内容的人。

© www.soinside.com 2019 - 2024. All rights reserved.