Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 用win32com编辑MS-Word头_Python_Ms Word_Win32com - Fatal编程技术网

Python 用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

我正在尝试使用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标题的正确方法是什么?

在这一行中使用括号而不是方括号,以及基于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的。