Python 用win32com编辑MS-Word头
我正在尝试使用win32com编辑具有现有标题的MS Word文档的标题。 我尝试了以下方法来编辑页眉:Python 用win32com编辑MS-Word头,python,ms-word,win32com,Python,Ms Word,Win32com,我正在尝试使用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.con
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标题的正确方法是什么?在这一行中使用括号而不是方括号,以及基于1的索引。COM中的所有内容都是函数调用或属性
word.ActiveDocument.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range.Text='test text'
在这一行中使用括号而不是方括号,以及基于1的索引。COM中的所有内容都是函数调用或属性
word.ActiveDocument.Sections(1).Headers(win32.constants.wdHeaderFooterPrimary).Range.Text='test text'
勇敢的灵魂。。。你考虑过索引了吗?至少在宏和C中,它们是基于1的,而不是基于0的。您还应该能够通过整数索引获得标题。我只通过C和VB处理过Word,所以我不确定这是否相关,我认为Sten Petrov可能是对的。我已经有一段时间没有使用win32com了,但总的来说,它和VB在索引方面都做得不好;VB接口是基于1的,因为底层IDispatch接口是基于1的,因此win32com接口也是基于1的。。。你考虑过索引了吗?至少在宏和C中,它们是基于1的,而不是基于0的。您还应该能够通过整数索引获得标题。我只通过C和VB处理过Word,所以我不确定这是否相关,我认为Sten Petrov可能是对的。我已经有一段时间没有使用win32com了,但总的来说,它和VB在索引方面都做得不好;VB接口是基于1的,因为基础IDispatch接口是基于1的,因此win32com接口也是基于1的。