首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Python-docx样式格式

Python-docx样式格式
EN

Stack Overflow用户
提问于 2016-07-15 03:05:29
回答 1查看 1.7K关注 0票数 2

我使用python-docx将一个熊猫DataFrame输出到Word表格中。大约一年前,我写了这个代码来构建这个表,它在当时是有效的:

代码语言:javascript
复制
table = Rpt.add_table(rows=1, cols=(df.shape[1]+1))
table.style = 'LightShading-Accent2'

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

代码语言:javascript
复制
KeyError: "no style with name 'LightShading-Accent2'"

我该如何定义风格呢?在较新版本的python-docx中,命名约定是否发生了变化?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-07-15 06:33:43

是的,有点抱歉,但这对API来说是一个正确的长期决定。

尝试使用"Light Shading - Accent 2“代替。该名称应与Word用户界面(UI)中显示的名称相同。

如果你仍然不能得到它,你可以枚举所有的样式名称,如下所示:

代码语言:javascript
复制
from docx import Document

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

如果你想缩小它的范围,比如只针对表格样式,你可以添加以下内容:

代码语言:javascript
复制
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)

打印出来的名字会给你精确的拼写。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38382305

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档