2013-01-03 104 views
2

我試圖編輯使用win32com已有標題的MS Word文檔的標題。
我想這編輯頁面標題:使用win32com編輯MS Word標題

import win32com.client as win32 

word = win32.gencache.EnsureDispatch('Word.Application') 
doc=word.Documents.Open("C:\\a.docx") 
word.Visible = True 
word.ActiveDocument.Sections[0].Headers[win32.constants.wdHeaderFooterPrimary].Range.Text='test text' 
word.ActiveDocument.Save() 
doc.Close(False) 
word.Application.Quit() 

但它有沒有影響(頭並沒有改變)!
什麼是通過win32com編輯MS Word標題的正確方法?

+2

勇敢的靈魂...你有沒有考慮過索引?至少在宏和C#中,它們是基於1的,而不是基於0的。你也應該能夠通過整數索引獲得一個頭。我只通過C#和VB處理Word,所以我不確定這是否相關 –

+0

我認爲Sten Petrov可能是對的。自從我使用'win32com'以來已經有一段時間了,但總的來說它和VB都沒有對索引做任何聰明的事情; VB接口是基於1的,因爲底層的'IDispatch'接口是,因此'win32com'接口也是如此。 – abarnert

回答

4

在此行中使用括號而不是方括號,以及基於1的索引。 COM中的所有內容都是函數調用或屬性。

word.ActiveDocument.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range.Text='test text'