Python读取Excel数据实现批量生成PPT

目录
  • 背景
  • 需求
  • 准备
    • PPT数据
    • PPT模板
  • 实战
    • 导入相关模块
    • 读取电影数据
    • 读取PPT模板插入数据

背景

大家好,我是J哥。

我们常常面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错。而Python在办公自动化方面具有天然优势,分分钟解决你的办公需求,提前下班不是梦。

需求

前几天我发表了一篇办公自动化文章Python读取Excel数据并批量生成合同,获得许多小伙伴的认可和喜欢。其中有一位粉丝提议,能否出一篇PPT自动化的教程,通过读取Excel数据批量生成幻灯片。于是,我以豆瓣电影数据为例进行了PPT自动化制作,先看看最终效果:

准备

PPT数据

我们首先需要准备填充PPT的数据,我这里用的是豆瓣电影数据,共有25条电影信息,包含title,director,date,country,types共5个字段,存储方式为Excel。数据预览如下:

另外,由于PPT还需要批量插入图片,因此我这里也准备了25张电影海报图片,存放在文件夹movie_pic中。

PPT模板

我们首先需要新建一个PPT模板,这个操作比较简单,直接进入到PPT母版视图,然后选择模板中第一张幻灯片的布局,依次插入电影名称、图片、类型、主演和导演、年份和国家6个占位符,其中除了图片其他都是内容占位符。这里一定要注意插入的顺序,后面代码也是根据占位符顺序来进行内容填充。为了美化PPT,我们可以个性化添加LOGO,背景图片,设置字体颜色大小等等。

实战

导入相关模块

# 读取图片文件
import os
# 读取Excel数据
import pandas as pd
# 操作PPT
from pptx import Presentation

读取电影数据

pandas读取excel数据,并将数据转为字典格式。

#读取电影数据
df = pd.read_excel(r".\ppt素材\top250.xlsx")
data = df.to_dict('records')
print(data)

读取PPT模板插入数据

Presentation()方法读取PPT模板,然后遍历所有电影数据(25个字典),选择母版样式中的第一张幻灯片即layout[0],接着遍历幻灯片中的所有占位符,这里用到enumerate()获取站位符的序号。将每个字典中的值插入到对应的占位符中,最后用save()方法保存新生成的PPT。

# 读取母版文件构建PPT的对象
my_ppt = Presentation(r".\ppt素材\ppt模板.pptx")
# 获取母版所有幻灯片布局
layout = my_ppt.slide_layouts
# 遍历所有电影数据
for x in data:
    #print(x)
    #选择模板中第一个幻灯片的布局并创建新幻灯片
    slide = my_ppt.slides.add_slide(layout[0])
    #当前幻灯片中所有的占位符
    placeholders = slide.shapes.placeholders
    for i,pl in enumerate(placeholders):
        if i == 0:
            pl.text = x["title"]
        elif i == 2:
            pl.text = x["types"]
        elif i == 3:
            pl.text = x["director"]
        elif i == 4:
            pl.text = str(x["date"])
        elif i == 5:
            pl.text = x["country"]
my_ppt.save("result.pptx")

由于图片是单独存放在文件夹movie_pic中,我们需要os.path.join()方法拼接每张图片的完整路径,然后用insert_picture()方法将图片插入到PPT中。

# 电影海报存储路径
images = r".\ppt素材\movie_pic"

# 遍历所有电影数据
for x in data:
    slide = my_ppt.slides.add_slide(layout[0])
    placeholders = slide.shapes.placeholders
    for i,pl in enumerate(placeholders):
        if i == 0:
            pl.text = x["title"]
        elif i == 1:
            img_path = os.path.join(images,f'{x["title"]}.jpg')
            print(img_path)
            pl.insert_picture(img_path)

以上就是Python读取Excel数据实现批量生成PPT的详细内容,更多关于Python生成PPT的资料请关注我们其它相关文章!

(0)

相关推荐

  • 使用python-pptx包批量修改ppt格式的实现

    最近实习需要对若干ppt进行格式上的调整,主要就是将标题的位置.对齐方式.字体等统一,人工修改又麻烦又容易错. 因此结合网上的pptx包资料,使用python脚本完成处理. 主要的坑点在于,shape的text_frame不能直接修改字体,甚至paragraph也不行,由于一个框里多个字体存在,它会报为"None",需要进一步去run层修改. from pptx import Presentation from pptx.enum.text import PP_ALIGN prs =

  • Python办公自动化PPT批量转换操作

    目录 python-pptx 模块的安装 读取 PPT 写入 PPT 添加一张幻灯片 为幻灯片添加内容 获取幻灯片中的形状: 添加自动形状 占位符 访问占位符 将内容插入占位符 如果要插入表格: 如果要插入图表: PPT 转 Pdf 最后的话 如果你有一堆 PPT 要做,他们的格式是一样的,只是填充的内容不一样,那你就可以使用 Python 来减轻你的负担. PPT 分为内容和格式,用 Python 操作 PPT,就是利用 Python 对 PPT 的内容进行获取和填充,修改 PPT 的格式并不

  • Python读取Excel数据实现批量生成合同

    目录 一.背景 二.准备 三.实战 1.安装相关库 2.读取合同数据 3.批量合同生成 大家好,我是J哥. 在我们的工作中,面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错.而Python在自动化办公方面具有极大的优势,可以解决我们工作中遇到的很多重复性问题,分分钟搞定办公需求. 一.背景 在我们经济交往中,有时会涉及到销售合同的批量制作.比如我们需要根据如下合同数据(Excel),进行批量生成销售合同(Word). 二.准备 我们首先要准备好一份合同模板(Word),将需要替换的合同

  • python实现pptx批量向PPT中插入图片

    目录 项目背景 基础 加亿点点细节 最终代码 项目结果图 总结 项目背景 实验结果拍摄了一组图片,数量较大,想要按顺序组合排版,比较简单的方式是在PPT中插入图片进行排版.但是PPT批量插入图片后,顺序打乱且不显示图片名称,每个图片单独调整位置和大小费时费力,于是想到使用工具批量操作.过去了解过python自动化办公模块,相对来说python也是简单易用的语言,项目预计不会耗费太大精力,故尝试学习实践一番.(非专业学习笔记分享,望各位大佬不吝指导!) 数据为16组实验,每组实验重复两次,共32个

  • python 批量将PPT导出成图片集的案例

    导读 需要使用python做一个将很多个不规则PPT导出成用文件夹归纳好的图片集,所以就需要使用comtypes调用本机电脑上的ppt软件,批量打开另存为多张图片 采坑 公司电脑使用comtypes完美导出图片,系统win10 回家后使用自己的电脑就报错,系统也是win10,最后没办法放弃comtypes采用win32com,最终成功 源代码 """ 该工具函数的功能:批量将PPT导出成图片 """ import comtypes.client

  • python生成ppt的方法

    本文主要介绍如何通过python生成ppt文件,以及借助ppt模板来生成ppt 环境 python 3 python-pptx 安装 pip3 install python-pptx 将文字输出到ppt 效果图 代码 from pptx import Presentation # 创建幻灯片 ------ prs = Presentation() title_slide_layout = prs.slide_layouts[0] slide = prs.slides.add_slide(titl

  • Python读取Excel数据实现批量生成PPT

    目录 背景 需求 准备 PPT数据 PPT模板 实战 导入相关模块 读取电影数据 读取PPT模板插入数据 背景 大家好,我是J哥. 我们常常面临着大量的重复性工作,通过人工方式处理往往耗时耗力易出错.而Python在办公自动化方面具有天然优势,分分钟解决你的办公需求,提前下班不是梦. 需求 前几天我发表了一篇办公自动化文章Python读取Excel数据并批量生成合同,获得许多小伙伴的认可和喜欢.其中有一位粉丝提议,能否出一篇PPT自动化的教程,通过读取Excel数据批量生成幻灯片.于是,我以豆瓣

  • python读取excel数据绘制简单曲线图的完整步骤记录

    python读写excel文件有很多种方法: 用xlrd和xlwt进行excel读写 用openpyxl进行excel读写 用pandas进行excel读写 本文使用xlrd读取excel文件(xls,sxls格式),使用xlwt向excel写入数据 一.xlrd和xlwt的安装 安装很简单,windos+r调出运行窗口,输入cmd,进入命令行窗口,输入以下命令. 安装xlrd: pip install xlrd 安装xlwt: pip install xlwt xlrd的API(applica

  • python读取excel数据并且画图的实现示例

    一,要读取的数据的格式: 二,数据读取部分: b站视频参考:https://www.bilibili.com/video/BV14C4y1W7Nj?t=148 # 1930 workbook=xlrd.open_workbook('1930.xlsx') sheet= workbook.sheet_by_index(0) A1=[] B1=[] # sheet.cell_value(i,0):第i行的第0个元素 for i in range(1,sheet.nrows): A1.append(s

  • Python读取Excel数据并生成图表过程解析

    一.需求背景 自己一直在做一个周基金定投模拟,每周需要添加一行数据,并生成图表.以前一直是用Excel实现的.但数据行多后,图表大小调整总是不太方便,一般只能通过缩放比例解决. 二.需求实现目标 通过Python程序读取Excel文件中的数据,生成图表,最好将生成图表生成至浏览器页面,后期数据多之后,也能自动缩放,而不会出现显示不全问题. 三.需求实现代码 # 调用本地echarts.min.js 文件 from pyecharts.globals import CurrentConfig Cu

  • Python自动化办公之读取Excel数据的实现

    目录 前言 Excel 读取 - xlrd 常用函数介绍 获取 excel 对象 获取工作簿 读取工作簿内容 前言 之前的章节我们学习了 python 关于 word 文件相关操作的知识点,从今天开始讲学习关于 excel 的相关操作,来看一下关于即将学习的 excel 相关知识点都有哪些? 如何读取 excel 文件 如何生成 excel 文件 如何在 excel 中生成基础的图表 目标:实现对 excel 的最基础的读写内容 该篇章所使用的新的模块 xlrd —> excel 的读取模块 x

  • 配置python连接oracle读取excel数据写入数据库的操作流程

    前提条件:本地已经安装好oracle单实例,能使用plsql developer连接,或者能使用TNS连接串远程连接到oracle集群 读取excel写入数据库的方式有多种,这里介绍的是使用pandas写入,相对来说比较简便,不需要在读取excel后再去整理数据 整个过程需要分两步进行: 一.配置python连接oracle并测试成功 网上有不少教程,但大部分都没那么详细,并且也没有说明连接单实例和连接集群的区别,这里先介绍连接oracle单实例的方式,后续再补充连接oracle集群方式. 版本

  • python 读取excel文件生成sql文件实例详解

    python 读取excel文件生成sql文件实例详解 学了python这么久,总算是在工作中用到一次.这次是为了从excel文件中读取数据然后写入到数据库中.这个逻辑用java来写的话就太重了,所以这次考虑通过python脚本来实现. 在此之前需要给python添加一个xlrd模块,这个模块是专门用来操作excel文件的. 在mac中可以通过easy_install xlrd命令实现自动安装模块 import xdrlib ,sys import xlrd def open_excel(fil

  • Python读取excel指定列生成指定sql脚本的方法

    需求 最近公司干活,收到一个需求,说是让手动将数据库查出来的信息复制粘贴到excel中,在用excel中写好的公式将指定的两列数据用update这样的语句替换掉. 例如: 有个A库,其中有两个A.01和A.02字段,需要将这两个字段替换到下面的sql语句中, update A set A.01 = 'excel第一列的值' where A.02 = 'excel第二列的值' 虽然excel中公式写好了,但是还需要将总计的那行复制粘贴到txt文档中,所以索性太麻烦,果断用Python写了一个自动化

  • python读取json数据还原表格批量转换成html

    目录 一.实操 1.首先创建一个新的文档 2.添加文本 二.word转成html 1.使用pydocx转换 2.使用win32模块 背景: 由于需要对ocr识别系统的表格识别结果做验证,通过返回的json文件结果对比比较麻烦,故需要将json文件里面的识别结果还原为表格做验证. 文件部分内容如下: {"row":"6","col","5""start_row": 0, "start_column&

随机推荐