我正在尝试使用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 :(得分: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中找到吗?