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

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

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

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

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

完全版本的PPT母版如下:

Excel篇:利用Excel制作PPT文本

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

第一张工作表

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

母版编号

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

版式编号

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

版式名称

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

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

文本

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

文本字数

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

占位符数量

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

第二张工作表

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

版式名称

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

母版编号

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

版式编号

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

占位符数量

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

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

Python篇

代码部分需要用到4个Python插件xlrd:用来读取excel文件

time:用来计算导出ppt需要多少时间

pptx:用来读取ppt模板

clear_format:自己编写的一个函数,用来清洗读取excel单元格的文本之后的格式

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

代码的基本思路如下:读取指定路径下的Excel文档

读取PPT模板

根据Excel里的母版编号与版式编号,读取该页的占位符

读取Excel里的文本,清洗单元格格式

写入占位符

写个循环,如果一页有3个占位符,就依次读取3个单元格的文本,分别写入这3个占位符

退出循环,读取下一个单元格的母版编号与版式编号

保存退出

全部代码如下:

#!/usr/bin/env python3

# _*_ coding: utf-8 _*_

# 将Excel的文本按照指定的版式导入PPT

# 打开PPT

import xlrd

import time

from pptx import Presentation

from hsk_modules import clear_format

# 记录开始运行程度的时间

time_start = time.time()

# 读取Excel

workbook_ppt = xlrd.open_workbook('/XXXXX.xlsx')

sheet_ppt = workbook_ppt.sheet_by_index(0)

sheet_nrows = sheet_ppt.nrows

print(sheet_nrows)

# 读取PPT模板

prs = Presentation('/PPT模板.pptx')

brows = 1

for rows in range(1, sheet_nrows):

rows = brows

print(rows)

if rows in range(1, sheet_nrows):

ppt_layout = int(clear_format(sheet_ppt.cell(rows, 1))) # 读取版式编号

ppt_text = clear_format(sheet_ppt.cell(rows, 4)) # 读取单元格文本

slide_layout = prs.slide_masters[0].slide_layouts[ppt_layout]

slide = prs.slides.add_slide(slide_layout)

body_shape = slide.shapes.placeholders

idx = []

for shape in slide.placeholders: # 根据占位符写入文本

idx.append(shape.placeholder_format.idx)

for shape_idx in idx: # 如果有多个占位符,就读取多个单元格,写入多次

body_shape[shape_idx].text = clear_format(sheet_ppt.cell(rows, 4))

rows = rows + 1

brows = rows

prs.save('/ppt-output.pptx') # 保存退出

print('已完成')

time_end = time.time() # 记录运行结束的时间

print(time_end-time_start) # 输出程序总耗时

导出之后的PPT是这样的:

精修篇

最后导出的PPT一般是1分钟100页左右,不过还需要精细化调整,比如增加自定义的图形,比如语法结构,示意图,各种图表等等

根据例句配图

给关键生词标注颜色

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

总结

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

python excel模板_如何利用Excel与Python制作PPT相关推荐

  1. python生成excel模板_实例9:用Python自动生成Excel档每日出货清单

    公司研发部门每年都需要向税务局提交一份出货清单,以申报研发费用.要求按日期来汇总,每日只要有出货,就需要一份出货单.出货总表包含数百条出货记录.假设一年有200天都出过货,那按照常规的方法,需要从总表 ...

  2. excel显著性检验_如何利用excel进行数据差异显著性分析-excel数据分析

    如何利用excel进行数据差异显著性分析 利用excel进行数据差异显著性分析的步骤: 工具原料:excel2013版本: 1.打开excel,添加"数据分析"模块:结果如图: 添 ...

  3. python多进程优化_如何利用多进程优化Python视频应用

    如果要用Python播放视频,或者打开摄像头获取视频流,我们可以用OpenCV Python.但是在视频帧获取的时候同时做一些图像识别和处理,可能会因为耗时多而导致卡顿.一般来说,我们首先会想到把这些 ...

  4. java导出数据到excel模板_springboot+jxls 根据Excel模板 填写数据并导出

    项目结构 pom.xml net.sf.jxls jxls-core 1.0.6compile 学生信息表模板: ExcelUtiles package cn.bdqn.utils;import ne ...

  5. 【征集需求】准备开发一个针对淘宝卖家的excel模板,实现在Excel上做帐

    一个针对淘宝卖家的excel模板,实现在Excel上做帐 请大家把做帐过程中关心的功能补充上来 比如 记录款项来源 模板中提供选项 1支付保 2 工行直接汇款 3招行直接汇款 4 赊帐 等等 [提供有 ...

  6. html网页制作期末大作业成品_新疆旅游网页设计作品_dreamweaver作业静态HTML网页设计模板_新疆旅游景点网页作业制作

    html网页制作期末大作业成品_新疆旅游学生网页设计作品_dreamweaver作业静态HTML网页设计模板_新疆旅游景点网页作业制作 临近期末, 你还在为HTML网页设计结课作业,老师的作业要求感到 ...

  7. 使用python套用excel模板_集成python的excel插件模板pyaddin——使用说明

    虽然VBA是Excel的官配二次开发语言,但鉴于python的简洁易用高可维护性,相信不少人更倾向于使用python来处理Excel相关的二次开发工作.目前已有一些优秀的python第三方库,例如xl ...

  8. excel python插件_如何利用Excel与Python制作PPT

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

  9. print python excel分隔_合并/拆分 Excel?Python、VBA轻松自动化

    作者 | Ryoko 来源 | 凹凸数据 当你收集了 n 个人的 EXCEL 记录表,需要将它们汇成一个总表时你会怎么做呢? 如果不通过技术手段,要一个个打开再复制粘贴也太麻烦了吧! 此时就需要一个通 ...

最新文章

  1. 6_jfoenix_自定义舞台,JFXSlider
  2. Vertical Menu ver4
  3. eclipse C/C++环境搭建
  4. Java队列 PriorityQueue
  5. L1-036 A乘以B
  6. [USACO 1.3.3]Calf Flac
  7. 我就是那个一直拿着死工资的人
  8. Bootstrap3 的新特性
  9. 【Kafka】kafka Failed to acquire lock on file .lock in /data/kafak-logs a kafka instance
  10. 设计网站导航|强大且智能的设计师导航
  11. php fpm core,在php-fpm下,服务器间歇出现core dump 追踪到php代码是include一个php文件...
  12. Padavan 路由器系统如何放开wan口的samba访问
  13. MongoDB 唯一索引
  14. 电动汽车续航标准傻傻分不清楚?别再被车企的等速续航骗了!
  15. 直播:京东大数据的应用!
  16. 三款好用的语音转文字软件,你知道几个?
  17. 史上最壕年会!微信送每人一台高配定制版iPhone X
  18. 记录下server的配置
  19. 谁的数据在说谎:天翼云71亿、浪潮云估值100亿、金山云亏了27亿?
  20. python爬取csdn上的包含整人关键词的阅读量并且存入表格里

热门文章

  1. 24小时之内完成优秀营销方案策划
  2. 千万级数据查询中CK、ES、RediSearch方案的优化
  3. 03 ,线性代数 :集合,空间,群,阿贝尔群,向量,向量空间
  4. Pycharm使用远程服务器解释器
  5. python 数据库框架peewee_python peewee模块使用
  6. 当医疗邂逅ICT——长沙湘雅医疗现场会,我们,不见不散
  7. android缩放组件,Android控件实现图片缩放功能
  8. Tkinter Canvas画布 图片导入
  9. js获取用户浏览器信息和ip地址以及位置
  10. 【嵌入式蓝桥杯】解决LED和LCD引脚冲突的方法