python在word中插入目录和更新目录实现方式

Written by

in

文章目录
  • 需要用到对象:TablesOfContents 目录的集合对象是TablesOfContents,单个的对象是TableOfContents。这两个词看起来差不多,差别只在table的复数和单数的区别,当时看了很久才看出差别。 现在创建一个空白的文档,在文档中添加一级标题和二级标题,最后在文档最前面,插入生成的目录。 示例代码: import win32com.client as win32 from win32com.client import constants doc_app = win32.gencache.EnsureDispatch(‘Word.Application’) doc_app.Visible =1 #不设置的话,看不到应用程序界面 doc = doc_app.Documents.Add() #添加标题1 ##添加文字 parag = doc.Paragraphs.Add() parag_range = parag.Range parag_range.Text =’一级标题’ ###设置样式 parag_range.Style = doc.Styles(“标题 1”)#Heading 1 是样式的名称 border = parag.Borders(constants.wdBorderBottom) border.LineStyle = constants.wdLineStyleSingle border.LineWidth = constants.wdLineWidth225pt #添加标题2 parag_range.InsertParagraphAfter()#在当前位置之后,新插入一行 parag_range = parag.Range parag_range.Text =’二级标题’ parag_range.Style = doc.Styles(“标题 2”)#二级标题 ##添加正文 parag_range.InsertParagraphAfter() parag_range = parag.Range parag_range.Text =’正文’ parag_range.Style = doc.Styles(“正文”)#正文 ##插入目录 doc.Paragraphs(1).Range.InsertParagraphBefore()#在首行之前插入一行,用于插入目录 parag_range = doc.Paragraphs(1).Range#指向新插入的行 #插入目录 ##从当前指向的位置插入目录,使用默认样式设置目录样式,包含3级标题 doc.TablesOfContents.Add(Range=parag_range, UseHeadingStyles=True,LowerHeadingLevel=3, UseHyperlinks=True) 上述代码中,除了最后一行,其他的都是在填充word的内容。真正插入代码的功能,只有最后一行代码。 UseHeadingStyles:设置使用默认的style UseHyperlinks:设置为Ture,则目录自带超链接。默认是False。 LowerHeadingLevel:设置目录显示的最低层级。通常UpperHeadingLevel不用设置。 生成效果: 对于文章中的段落的格式,例如间距、字体都可以通过手动设置在一个空白的word文档。 这个文档作为模板,自动生成的内容,可以直接使用其样式,这样效率更高。
  • 日常工作中经常还会遇到需要更新目录。 可以使用2种更新方法:全部更新(Update)和只更新页码(UpdatePageNumbers)  只更新页码的示例代码: for toc in doc.TablesOfContents: #遍历所有的目录对象 toc.UpdatePageNumbers() # 更新页码 示例中,是遍历所有的目录对象。 如果需要针对特定的目录更新,可以使用doc.TablesOfContents(1)来制定首个目录,注意括号中的数字是从1开始的。
  • 以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。 您可能感兴趣的文章: Python使用Python-docx库实现Word文档自动化 Python自动化办公全攻略之Excel/Word/PDF/邮件批量处理 使用Python开发一个Word操作助手的实战指南(附源码) Python自动化提取多个Word文档的文本 使用Python调整Word文档中各个节的页边距 Python实现将.py代码转换为带语法高亮的Word和PDF Python使用Spire.Doc for Python自动化编辑Word文档
  • 目录
    • 1、插入目录
    • 2、更新目录
    • 总结

    需要用到对象:TablesOfContents

    目录的集合对象是TablesOfContents,单个的对象是TableOfContents。这两个词看起来差不多,差别只在table的复数和单数的区别,当时看了很久才看出差别。

    现在创建一个空白的文档,在文档中添加一级标题和二级标题,最后在文档最前面,插入生成的目录。

    示例代码:

    import win32com.client as win32
    from win32com.client import constants
    
    doc_app = win32.gencache.EnsureDispatch('Word.Application')
    doc_app.Visible =1 #不设置的话,看不到应用程序界面
    doc = doc_app.Documents.Add()
    
    #添加标题1
    ##添加文字
    parag = doc.Paragraphs.Add()
    parag_range = parag.Range
    parag_range.Text ='一级标题'
    ###设置样式
    parag_range.Style = doc.Styles("标题 1")#Heading 1 是样式的名称
    
    border = parag.Borders(constants.wdBorderBottom)
    border.LineStyle = constants.wdLineStyleSingle
    border.LineWidth = constants.wdLineWidth225pt
    
    #添加标题2
    parag_range.InsertParagraphAfter()#在当前位置之后,新插入一行
    parag_range = parag.Range
    parag_range.Text ='二级标题'
    parag_range.Style = doc.Styles("标题 2")#二级标题
    ##添加正文
    parag_range.InsertParagraphAfter()
    parag_range = parag.Range
    parag_range.Text ='正文'
    parag_range.Style = doc.Styles("正文")#正文
    ##插入目录
    
    doc.Paragraphs(1).Range.InsertParagraphBefore()#在首行之前插入一行,用于插入目录
    parag_range = doc.Paragraphs(1).Range#指向新插入的行
    #插入目录
    ##从当前指向的位置插入目录,使用默认样式设置目录样式,包含3级标题
    doc.TablesOfContents.Add(Range=parag_range, UseHeadingStyles=True,LowerHeadingLevel=3, UseHyperlinks=True)

    上述代码中,除了最后一行,其他的都是在填充word的内容。真正插入代码的功能,只有最后一行代码。

    • UseHeadingStyles:设置使用默认的style
    • UseHyperlinks:设置为Ture,则目录自带超链接。默认是False。
    • LowerHeadingLevel:设置目录显示的最低层级。通常UpperHeadingLevel不用设置。

    生成效果:

    对于文章中的段落的格式,例如间距、字体都可以通过手动设置在一个空白的word文档。

    这个文档作为模板,自动生成的内容,可以直接使用其样式,这样效率更高。

    日常工作中经常还会遇到需要更新目录。

    可以使用2种更新方法:全部更新(Update)和只更新页码(UpdatePageNumbers)

     只更新页码的示例代码:

    for toc in doc.TablesOfContents: #遍历所有的目录对象
    	toc.UpdatePageNumbers() # 更新页码

    示例中,是遍历所有的目录对象。

    如果需要针对特定的目录更新,可以使用doc.TablesOfContents(1)来制定首个目录,注意括号中的数字是从1开始的。

    以上为个人经验,希望能给大家一个参考,也希望大家多多支持风君子博客。

    您可能感兴趣的文章:

    • Python使用Python-docx库实现Word文档自动化
    • Python自动化办公全攻略之Excel/Word/PDF/邮件批量处理
    • 使用Python开发一个Word操作助手的实战指南(附源码)
    • Python自动化提取多个Word文档的文本
    • 使用Python调整Word文档中各个节的页边距
    • Python实现将.py代码转换为带语法高亮的Word和PDF
    • Python使用Spire.Doc for Python自动化编辑Word文档

    站内搜索