• Python 自动化教程(4) : 自动生成PPT文件 Part 2 (干货)


    系列教程:

    Python 自动化教程(1) 概述,第一篇 Excel自动化

    Python 自动化教程(2) : Excel自动化:使用pandas库

    Python 自动化教程(3) : 自动生成PPT文件 Part 1

    Python 自动化教程(4) : 自动生成PPT文件 Part 2

    Python 自动化教程(5) : 自动生成Word文件

    Python 自动化教程(6) : PDF文件处理

    上一篇,写了office库中 使用Excel数据 自动生成 PPT的方法。

    本篇,继续介绍使用office库自动生成 PPT的其他形式。 如果没有看过上一篇的,应该不知道如何下載安裝office库、生成PPT,因此要先请点击这里阅读上一篇

    office库简介

        本人用 python 写了一个 office库,用于办公自动化,功能是很强的, 包括:PPT自动生成、PPT转长图、PPT带语音播放、Word自动生成、Excel数据处理、图片处理、视频处理、office文档转为PDF、PDF加解密、加水印等等,都是实用的干货。

    使用方法极简,大多数功能只需一行、两行代码

     使用PIP 安装office库:

    请在命令行,通过PIP安装:

    pip install jojo-office

    office库的安装名称是 jojo-office

    使用时, import office 即可。

    import office

    office库依赖库包括:python-docx, openpyxl, python-pptx, PyPDF4, reportlab, playsound等, 安装时将自动安装完成。

    本文数据及源码文件下载请点这里

    5、将 dictionay 作为数据源,填入PowerPoint模板文件

    写一个模板PPT文件,编写变量。填入dictionay 数据,即可生成PPT。只是,以dictionary为数据源时,变量写法有一点不同。

    模板文件 template6.pptx 如下,  变量名就是dictionary的key值。 注:图表的变量输入,要右键点击图表,点击“编辑数据”菜单,在数据表第一行写入变量。

    python代码如下:

    1. import office
    2. data = {
    3. "姓名": "Peter",
    4. "年龄": 18,
    5. "相片": "peter.jpg",
    6. '学习': {
    7. '课程': ['语文', '数学', '英语'],
    8. '成绩': [95.3, 68, 75],
    9. '评价': ['优', '差', '中']
    10. }
    11. }
    12. # 以 template6.pptx 为模板,创建 report.pptx 文件, 填入data dict数据, 保存
    13. office.open_file("report.pptx", "template6.pptx").fill(data).save()

     生成PPT如下:

     说明:

    该示例演示了, 在填入dictionay数据时,文字、图片、表格、图表的变量写法。

    6、将 DataFrame对象作为数据源,填入PowerPoint模板文件

    pandas库的 DataFrame 对象,也可以作为填充的数据源。

    模板文件 template7.pptx 如下, 

     变量写法:

    1,   变量 {课程[0]}  表示 DataFrame 的 “课程”列的第0行

    2, 对于表格,第一行写: 以 DataFrame的列名 为变量

    图表的变量输入,要右键点击图表,点击“编辑数据”菜单,在数据表第一行写入变量。以 DataFrame的列名 为变量

    7、多个数据源,多次填入PowerPoint文件

    有时,有多个数据源,可以多次调用 fill() 多次填入数据。

    模板文件 template8.pptx 如下, 

     模板中, 表格中的 {Sheet1!B1} 等变量数据来自 Excel.

    {姓名}  {年龄} 等变量数据来自 dictionary

    python 程序如下:

    1. import office
    2. person = {"姓名": "Peter", "年龄": 18, "相片": "peter.jpg"}
    3. # 以template8.pptx为模板创建文件, 填入datafile.xlsx文件数据, 再填入person数据,保存
    4. office.open_file("report.pptx", "template8.pptx").fill('datafile.xlsx').fill(person).save()

    运行结果  生成report.pptx  如下:

     可见, 经过两次调用fill()分别填入了 Excel文件数据 和 dictionary 数据。 多个数据源合成在一个PPT文件中了。

    8、重复产生幻灯片

    比如:有一个3个人的人员名单表,一张幻灯片的PPT模板,按人员数量每人生成一张幻灯片。

    datafile.xlsx 的 Sheet1工作表有一个表格

    模板文件 template9.pptx 如下, 

     模板中, 变量名前加了 @repeat 标志,表明这个变量需要重复生成幻灯片。  Sheet1!D1变量前还有一个 @ 符, 表明这个变量值是一张图片。

    python 程序如下:

    1. # 以 template9.pptx 为模板,创建 report.pptx 文件, 填入datafile.xlsx 文件数据, 保存
    2. office.open_file("report.pptx", "template9.pptx").fill("datafile.xlsx").save()

    生成的 report.pptx 如下:

     可见,  模板中的一张幻灯片,变成了3张幻灯片,分别填入了 Excel表格中各行的数据,其中: Sheet1!D1 所在的数据 是图片文件名, 插入了图片。

    小结:

    本篇介绍了 使用office库自动生成PPT的进一步的方法。总结PPT自动生成的特点:

    1, office库提供了强大的PPT生成功能。

    2, 写一个模板PPT文件,编写变量。填入数据,即可生成PPT.

    3,填入数据可以生成PPT的文字、表格、图表,可以插入图片

    4,  数据可以放在Excel文件中。变量为 Excel的 {工作表!单元格} 。

    5,  数据可以是 dictionary。变量为  键名,如:{key}。

    6,  数据可以是 DataFrame。变量为  列名,如:{column} 。

    7、对数据列表,支持重复生成幻灯片

    8,PPT可以存为长图带水印、存为PDF。PPT可以带语音播放。

    本文数据及源码文件下载请点这里

    续篇:

    office库还有其他许多功能,下节课再讲。

    office库还在开发完善中,偶有bug请见谅、或提改进。

    有兴趣深入研究的,可以看office.py的源码。

  • 相关阅读:
    这3种思维方式,能让你的事业更上一层楼
    【Linux---03】vim文本编辑器
    linux 网络图标消失的解决办法
    系统架构设计师之系统应用集成
    土豆清洗去皮机设计
    位段式结构体例题
    外汇天眼:3天80%收益!推荐人还有10%的推荐奖金!CoinFxOnline被警告!
    如何配置微信小程序id
    【flink进阶】-- Flink kubernetes operator 版本升级
    图像处理基本概念、GAN
  • 原文地址:https://blog.csdn.net/c80486/article/details/126552593