python ppts设置table线宽度 python excel ppt_占位符


对外汉语课堂中需要制作PPT。有些PPT的版式是相对固定的,如果数量巨大的话,可以利用python的pptx插件,与excel相结合,制作PPT。完整工作流有些复杂,所以分为4个部分来说明。

PPT准备篇:编辑PPT母版版式

梳理PPT样式的种类,然后利用PPT的母版版式,制作固定样式的PPT。

在梳理PPT样式的种类时,要把例句的字数考虑进去,分为短例句样式(一般20个字以内),以及长例句样式(20个字以上)。部分页面还需要超长例句样式(例如整段文本的)。

PPT母版版式的制作,需要利用占位符来规定文本的位置、字体、字号以及颜色。如果是固定内容(例如角标),可以用文本框+文字的方式实现,这样这个文字就会一直存在,并且不会占据占位符的编号(占位符的编号在Python中有非常重要的作用)。

完全版本的PPT母版如下:


python ppts设置table线宽度 python excel ppt_占位符_02


Excel篇:利用Excel制作PPT文本

首先需要有两张工作表(sheet),第一张工作表对应着要导入PPT的文本和版式,第二张工作表对应着版式编号与说明。

第一张工作表

第一张工作表需要包含的信息有:母版编号,母版名称,文本,文本字数,占位符的数量。


python ppts设置table线宽度 python excel ppt_Python_03


母版编号

在Python读取PPT的母版编号时,支持多个母版,每个母版下可以创建多个版式。编号都是从0开始计算。

版式编号

每个母版下都有多个版式,每个版式也有一个编号,从0开始计算。

版式名称

这个是为了给文本指定版式用的,是自行编写的,没有系统指定啥的。因为如果不写版式名称的话,指定版式就全部需要版式编号了,而版式编号都是数字,根本分不清是哪个版式,所以用版式名称比较方便。

以上三类信息,当选择了版式名称后,母版编号与版式名称都可以用vlookup函数从第二张工作表里查找而来。详见第二张工作表说明。

文本

把需要呈现在PPT的文本放到单元格里。请注意,一个单元格代表一个占位符。所以如果一页有4个占位符,那么就应该有4个单元格的文本内容。并且单元格的顺序,对应着占位符的顺序。(这就是为什么占位符的编号很重要的原因)

文本字数

这是为了判断到底用短例句的版式还是长例句的版式,一般超过20的就用长例句版式。

占位符数量

这是为了检查单元格的数量有没有符号某个页面的占位符数量,以防后续python导入的时候报错。

第二张工作表

其实就是包含了版式名称、母版编号、版式编号以及占位符数量的“查询表”。


python ppts设置table线宽度 python excel ppt_python_04


版式名称

自编,只要看得懂就行,如上图。

母版编号

一个PPT里允许存在多个母版,编号都是从0开始。

版式编号

一个母版下有多个版式,编号也是从0开始。

占位符数量

人肉填写,根据页面上有多少个占位符,请注意填写了文字的文本框不计入占位符。

做完Excel的部分,就可以编写Python代码,从而实现将Excel批量生成PPT的功能了。

Python篇

代码部分需要用到4个Python插件

  1. xlrd:用来读取excel文件
  2. time:用来计算导出ppt需要多少时间
  3. pptx:用来读取ppt模板
  4. clear_format:自己编写的一个函数,用来清洗读取excel单元格的文本之后的格式

简单说明一下,读取Excel单元格之后,会根据单元格的属性带有字段,例如如果单元格是文本格式,就是这样的: 'text:' XXXXX. 如果是数字格式,就是这样的:'number:'XXXXX。所以先要把这些字段给剔除,利用的是Python的replace方法。

代码的基本思路如下:

  1. 读取指定路径下的Excel文档
  2. 读取PPT模板
  3. 根据Excel里的母版编号与版式编号,读取该页的占位符
  4. 读取Excel里的文本,清洗单元格格式
  5. 写入占位符
  6. 写个循环,如果一页有3个占位符,就依次读取3个单元格的文本,分别写入这3个占位符
  7. 退出循环,读取下一个单元格的母版编号与版式编号
  8. 保存退出

全部代码如下:


#!/usr/bin/env python3


导出之后的PPT是这样的:


python ppts设置table线宽度 python excel ppt_python_05


精修篇

最后导出的PPT一般是1分钟100页左右,不过还需要精细化调整,比如

  1. 增加自定义的图形,比如语法结构,示意图,各种图表等等
  2. 根据例句配图
  3. 给关键生词标注颜色

这个部分根据PPT页数的多少,大概在1个小时左右。

总结

总的来说,利用Excel与Python结合导出PPT,能显著降低PPT的不确定性。因为版式都固定,字体、字号、颜色都固定了,所以只要后期添加一些自定义的图形与图片即可。能保证在团队流程中,做出来的PPT也是同一种风格。在大规模的批量化制作中,是非常有利的。