gpt4 book ai didi

python - Word & Python - 创建目录

转载 作者:太空宇宙 更新时间:2023-11-03 10:54:53 26 4
gpt4 key购买 nike

我正在为 python 使用 pywin32.client 扩展并构建一个 Word 文档。我已经尝试了很多很好的方法来生成目录,但都失败了。

我想我想做的是调用 ActiveDocument 对象并使用 MSDN 页面中的这个示例创建一个对象:

Set myRange = ActiveDocument.Range(Start:=0, End:=0) 
ActiveDocument.TablesOfContents.Add Range:=myRange, _
UseFields:=False, UseHeadingStyles:=True, _
LowerHeadingLevel:=3, _
UpperHeadingLevel:=1

除了在 Python 中它会是这样的:

wordObject.ActiveDocument.TableOfContents.Add(Range=???,UseFiles=False, UseHeadingStyles=True, LowerHeadingLevel=3, UpperHeadingLevel=1)

到目前为止,我已经使用“选择”对象(下面的示例)构建了所有内容,并希望在第一个分页符后添加此目录。

这是文档的示例:

objWord = win32com.client.Dispatch("Word.Application")
objDoc = objWord.Documents.Open('pathtotemplate.docx') #
objSel = objWord.Selection
#These seem to work but I don't know why...
objWord.ActiveDocument.Sections(1).Footers(1).PageNumbers.Add(1,True)
objWord.ActiveDocument.Sections(1).Footers(1).PageNumbers.NumberStyle = 57
objSel.Style = objWord.ActiveDocument.Styles("Heading 1")
objSel.TypeText("TITLE PAGE AND STUFF")
objSel.InsertParagraph()
objSel.TypeText("Some data or another"
objSel.TypeParagraph()
objWord.Selection.InsertBreak()
####INSERT TOC HERE####

任何帮助将不胜感激!在一个完美的世界中,我会使用默认的第一个选项,该选项可从 Word GUI 获得,但它似乎指向一个文件并且更难访问(与模板有关)。

谢谢

最佳答案

在 Word 中手动编辑您的模板,添加 ToC(最初为空)任何介绍内容、页眉/页脚等,然后在您想要插入文本内容的位置(即在 ToC 之后)放置一个唯一命名的书签。然后在您的代码中,基于模板创建一个新文档(或打开模板然后将其保存为不同的名称),搜索书签并在其中插入您的内容。保存为不同的文件名。

这种方法有各种优点 - 您可以在 Word 中设置模板格式,而无需编写所有代码细节,因此当有人说他们想要更大的 Normal 字体时,您可以非常轻松地编辑模板以更新样式/smaller/pink 你可以通过编辑模板来完成。确保在您的代码中使用样式,并且仅在与默认样式明显不同时才应用格式。

不确定您如何确保 ToC 实际生成,可能会在每次保存时自动更新。

关于python - Word & Python - 创建目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42820704/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com