先讲一个真事:
几年前,和某很大平台的一位经理聊天。起因是我发现他们偌大一个平台居然没有数据导入功能,数据删除这样的重要操作也没有日志,并且没有回收站可以找回丢失的数据。如果要上线一门课程,几百道习题和相应的选择题上千个选项必须手工一题一题录入,一旦数据丢失就需要重复录入。我问“为什么不设计一个Excel模板,老师们线下整理好直接导入就行,那样会方便很多啊”,答曰“那样老师们会因为操作不熟练而出错”。。。
进入正题:
假设有一个Word文档,内容分为很多章节,现在要想生成目录,该怎么办呢?肯定有人会说,逐个章节标题设置好目录级别,然后直接生成就可以了。如果章节标题非常多的话,可以使用格式刷啊。如果有三级标题,先设置好一个一级标题以后去刷所有一级标题,然后设置好一个二级标题去刷所有二级标题,最后设置一个三级标题再去刷所有三级标题,不过是多花点时间而已。
但是,可以想象,如果页数非常多的话,鼠标来回滚动花时间不说,人工操作也非常容易出错、遗漏、误刷,可能需要反复修改很多次才行。
那么如何快速又准确地完成这个任务呢?使用Python可以吗?答案是肯定的。
下面来演示一下如何使用Python快速又准确地设置Word文档中章节标题,编写一段代码生成随机内容,
把程序输出的内容复制到Word文档中,如图,
把得到的Word文档保存为“快速设置章节标题.docx”,接下来要做的事情是,把所有以数字开头然后空格后面是文本的段落设置为对应级别的标题,如果开头只有一个数字就设置为一级标题,以一个圆点分隔的两个数字开头的段落设置为二级标题,以两个圆点分隔的三个数字开头的段落设置为三级标题。
首先,打开文件“快速设置章节标题.docx”,手工设置一个一级标题、一个二级标题和一个三级标题,保存文件。这一步很重要,结果如图,
安装Python扩展库python-docx,编写程序,如下,
运行程序,得到的新文件形式如下,
在需要插入目录的位置单击鼠标确定光标位置,然后按上图中箭头所指依次展开,在弹出的窗口中选择生成三级目录,
生成的目录如图,