Python-docx样式格式

时间:2016-07-14 19:05:29

标签: python pandas python-docx

我正在使用python-docx将Pandas DataFrame输出到Word表。大约一年前,我编写了这段代码来构建那个当时有效的表:

table = Rpt.add_table(rows=1, cols=(df.shape[1]+1))
table.style = 'LightShading-Accent2'

其中Rpt是模板中的文档。现在,我收到一个错误:

KeyError: "no style with name 'LightShading-Accent2'"

我该如何定义风格?在较新版本的python-docx中是否更改了命名约定?

1 个答案:

答案 0 :(得分:2)

是的,稍微,为此道歉,但这是API的正确的长期决定。

请尝试使用“Light Shading - Accent 2”。它应该是Word用户界面(UI)中显示的名称。

如果仍然无法获得它,您可以使用以下内容枚举所有样式名称:

from docx import Document

document = Document()
styles = document.styles
for style in styles:
    print "'%s' -- %s" % (style.name, style.type)

如果你想稍微缩小范围,比如说只有表格样式,你可以添加:

from docx.enum.style import WD_STYLE_TYPE

styles = [s for s in document.styles if s.type == WD_STYLE_TYPE.TABLE]
for style in styles:
    print(style.name)

打印的名字会为您提供准确的拼写。