我最近在学习pywin32文件自动化的相关知识,我想通过word“引用”板块中的“目录”板块中的“自动目录”来为我自己的文档生成目录,在使用了宏录制之后得到了以下VB代码:
Application.Templates( _
"C:\Users\北嘉图\AppData\Roaming\Microsoft\Document Building Blocks\2052\16\Built-In Building Blocks.dotx" _
).BuildingBlockEntries("自动目录 1").Insert Where:=Selection.Range, RichText _
:=True
我将其改写为Python代码,全部代码如下:
from win32com import client
docFilePath = r"C:\Users\北嘉图\Desktop\社会科学概论.docx"
wordExe = client.Dispatch("Word.Application")
wordExe.Visible = 1
wordExe.DisplayAlerts = 0
docFile = wordExe.Documents.Open(docFilePath)
# 添加目录
wordExe.Selection.GoTo(0, 0, 0, 0) # 将光标移动到文档开头
tocTemplate = r"C:\Users\北嘉图\AppData\Roaming\Microsoft\Document Building Blocks\2052\16\Built-In Building Blocks.dotx"
tocName = "自动目录 1"
wordExe.Application.Templates(tocTemplate).BuildingBlockEntries(tocName).Insert(Where=wordExe.Selection.Range, RichText=True)
但是获得报错:
Templates.py_, line 54, in __call__ ret = self._oleobj_.InvokeTypes(0, LCID, 1, (9, 0), ((16396, 1),),Indexpywintypes.com_error_ (-2147352567, '发生意外。', (0, 'Microsoft Word', '集合所要求的成员不存在。', 'wdmain11.chm', 25421, -2146822347), None)
进程已结束,退出代码为 1
我猜想是由于参数没有写好导致的,请问该问题如何解决?