我正在使用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中是否更改了命名约定?
答案 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)
打印的名字会为您提供准确的拼写。