是否有解决方法来更新文档的目录?我考虑过使用python软件包“ pywin32” [https://pypi.python.org/pypi/pypiwin32]]或可比的pypi软件包中的“ win32com.client”,该软件包为MS Office提供“ cli control”功能.

我尝试了以下方法:

Sub update_TOC()

If ActiveDocument.TablesOfContents.Count = 1 Then _

ActiveDocument.TablesOfContents(1).Update

End Sub

如果我更改内容(添加/删除标题)并运行宏,则目录更新.我保存了文件,很高兴.

我实现了以下与宏等效的python代码:

import win32com.client

def update_toc(docx_file):

word = win32com.client.DispatchEx("Word.Application")

doc = word.Documents.Open(docx_file)

toc_count = doc.TablesOfContents.Count

if toc_count == 1:

toc = doc.TablesOfContents(1)

toc.Update

print('TOC should have been updated.')

else:

print('TOC has not been updated for sure...')

在更高级别的脚本中调用update_toc(docx_file)(该脚本操纵与文档的TOC相关的内容).此函数调用之后,将保存文档(doc.Save()),关闭文档(doc.Close()),并关闭单词实例(word.Quit()).但是,TOC尚未更新.

ms word是否在宏执行后执行了我未考虑的其他操作?

解决方法:

这是一个代码片段,用于更新单词2013 .docx文档的目录,仅包含一个目录(例如仅标题的TOC,不包含图形的TOC等).如果使用python update_toc.py从命令promt(Windows 10,命令promt不“以管理员身份运行”)运行脚本update_toc.py,则python的系统安装程序会在同一目录中打开文件doc_with_toc.docx,更新目录(以我的标题为准),并将更改保存到同一文件中.该文档可能不会在Word 2013的另一个实例中打开,并且可能没有写保护.请注意,此脚本的功能为not the same as selecting the whole document content and pressing the F9 key.

update_toc.py的内容:

import win32com.client

import inspect, os

def update_toc(docx_file):

word = win32com.client.DispatchEx("Word.Application")

doc = word.Documents.Open(docx_file)

doc.TablesOfContents(1).Update()

doc.Close(SaveChanges=True)

word.Quit()

def main():

script_dir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))

file_name = 'doc_with_toc.docx'

file_path = os.path.join(script_dir, file_name)

update_toc(file_path)

if __name__ == "__main__":

main()

标签:python-docx,pywin32,win32com,python

来源: https://codeday.me/bug/20191027/1947407.html

pythondocx更新目录_使用Python更新MS Word .docx文档的目录(目录)相关推荐

  1. python生成word目录_使用Python更新MS Word .docx文档的目录(目录)

    我使用python包" python-docx"来修改MS Word .docx文档的结构和内容.该软件包无法更新TOC(目录)[Python: Create a "Ta ...

  2. Word 2010文档自动生成目录和某页插入页码

    一.Word 2010文档自动生成目录 关于Word文档自动生成目录一直是我身边同学们最为难的地方,尤其是毕业论文,经常因为目录问题,被要求修改,而且每次修改完正文后,目录的内容和页码可能都会发生变化 ...

  3. Ubuntu下使用python读取doc和docx文档的内容

    读取docx文档 使用的包是python-docx 1. 安装python-docx包 sudo pip install python-docx 2. 使用python-docx包读取数据 #enco ...

  4. python grep 列表_关于python:跨多个文档的字符串搜索 – grep?

    如果给出文档列表,文档中包含字符串,您如何进行搜索并从文档中搜索并返回包含您要搜索的字符串的文档列表? 对于此问题陈述,我如何在Python或C中实现程序? 我考虑过grep,但我不确定如何实现原生P ...

  5. python2读取excel中文处理_用python + openpyxl处理excel(07+)文档 + 一些中文处理的技巧...

    最近要帮做RA的老姐写个合并excel工作表的脚本--源数据是4000+个excel 工作表,分布在9个xlsm文件里,文件内容是中英文混杂的一些数据,需要从每张表中提取需要的部分,分门别类合并到多个 ...

  6. python 操作 word 文档,使用 python-docx 操作 word docx 文档

    写在前面 python-docx 不支持 doc 文档,一定要注意该点,如果使用 doc 文档,需要提前将其用 Word 相关软件转换为 docx 格式. doc 和 docx 是存在本质差异的,一个 ...

  7. python打开已有docx文档_python读取docx文件,就是如此简单

    中文编码问题总是让人头疼(尤其是mac本),想要用 Python读取word中的内容.用open()经常报错,通过百度搜索+问身边小伙伴发现了 Python有专门读取.docx的模块python_do ...

  8. python docx 合并文档 图片_使用python抓取大量简历文档内数据(word:docx;pdf;图片等)输出表格文件...

    1. 文章背景描述: 近期公司有员工离职了,技术岗位的. 让HR招人,招聘进度也太慢了,实在等不及,就撸起袖子自己上.(之前从来没招聘过) 自己在某招聘网站注册后,花了若干人民币,短时间收到大量求职者 ...

  9. python查看库函数和方法_查看python库函数和三方库函数文档

    原博文 2020-03-08 16:08 − 1.打开终端,输入python -m pydoc -p 0,(0是让系统自动分配端口,也可以自己指定端口)会返回Server ready at http: ...

  10. python 解析html 模块_使用 Python 模块—— HTMLParser 解析 HTML 文档元素

    标签: 这个文档定义了一个 HTMLParser 类作为解析 HTML 文档的基础. HTMLParser 类的实例可以存储并调用方法来处理 HTML 标签和数据. 我们一般通过建立一个 HTMLPa ...

最新文章

  1. 【基础练习】【拓扑排序】codevs3294 车站分级题解
  2. 分支定界法上下界_分支定界(Branch-and-Cut)方法的逻辑
  3. 【腾讯面试题】MySQL常用数据库引擎
  4. 不要在facelets中重复表情
  5. c语言中有哪些函数关系,C语言中有哪些常用的函数
  6. 【USACO2006 Mar】滑雪缆车 skilift
  7. Designing Virtual Connect for vSphere 5.x
  8. 如果用户计算机已接入,01计算机基础知识题(50道)
  9. 安装与设置Visual SVN
  10. MySQL二十四:索引
  11. python 教程 第十章、 输入/输出
  12. 永磁同步电机的原理介绍
  13. Android音频子系统(七)------数字耳机播192KHz音乐卡顿问题解析
  14. SQL获取当前月份的第一天
  15. 【阿里云】DCDN全站加速介绍及配置
  16. linux查找以c开头的的文件夹,【Linux】 find指令(文件查找)
  17. 倒立摆的实现 6.定时器中断和其余初始化
  18. 20210518绕过苹果全新发布14.5系统ID更新checkra1n0.12.4越狱的所有版本苹果手机或iPad
  19. 2011年7月15日
  20. 目标检测论文阅读:FCOS算法笔记

热门文章

  1. 安装JDK与配置java环境变量
  2. linux apache 查看mpm 配置方式,Apache Prefork、Worker和Event三种MPM详解
  3. Java 添加Word文本框
  4. 衣服的尺寸S、M、L、XL、XXL分别表示的型号大小顺序是什么?
  5. fileuploads
  6. JDK 运行参数 JAVA -Dxxx与System.setProperty()的关系
  7. [破解] nasca drm file -ver1.00
  8. 项目管理中的里程碑是什么
  9. 一、Photoshop新版本(2019以后)常用快捷键总结、归纳
  10. python aic准则_在Python中手工计算Akaike信息标准(AIC)