2014-04-10 57 views
2

我正在尝试使用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' 

我无法从文件是否应该工作或不出来。它似乎表明段落样式是可写的,但在文档中没有这个用例的例子。

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

回答

0

支持这些调用。我将不得不仔细看看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 
??? 

而且,越来越样式名称权有时是一招。我不明白这会如何导致你所看到的行为,但可能值得研究。你确定你在Sample.docx中有'标题'样式吗?

+0

是的,工作。一旦我将该段落分配给单个对象,我就可以改变样式。令我感到惊讶的是,该段落对象仍然提到了文档中的段落,而不是我工作区中的单独的段落对象。因此,我可以在更改格式后立即使用新的段落格式保存文档。 – ScottYoung

相关问题