2014-04-10 54 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

相關問題