如何使用python-docx将样式应用于段落?

时间:2014-04-10 05:15:18

标签: python docx python-docx

我正在尝试使用python-docx模块将样式应用于文档中的段落。我可以写新的文字,但我不能对之前写的段落应用不同的样式。

以下是一个例子:

x = docx.Document('Sample.docx')

x
Out[81]: <docx.api.Document at 0x121cebed0>

x.paragraphs[2].style
Out[82]: 'Normal'

x.paragraphs[2].style = 'Title'

x.paragraphs[2].style
Out[84]: 'Normal'

我无法从文档中看出这是否有效。它似乎表明段落样式是可写的,但文档中没有这个用例的例子。

请让我知道这是我的问题,还是功能尚未实现。

1 个答案:

答案 0 :(得分:1)

支持这些调用。我必须仔细查看Sample.docx才能进行故障排除。

如果你一步一步地把它打印出来,你会得到什么?

像:

>>> document = Document('Sample.docx')
>>> document
<docx.api.Document at 0x121cebed0>  # this looks good so far
>>> paragraphs = document.paragraphs
>>> paragraphs
???
>>> paragraph = paragraphs[2]
>>> paragraph
???
>>> paragraph.style = 'Title'
>>> paragraph.style
???

此外,将样式名称设置为正确有时也是一种技巧。我不知道这会导致你所看到的行为,但可能值得研究。你确定你有风格&#39; Title&#39;可以在Sample.docx中找到吗?