学习用Python实现PPT的自动化

news/2024/4/19 16:25:36/文章来源:https://blog.csdn.net/weixin_49892805/article/details/127603521

前言

在日常工作中,我们总是需要创建或修改PPT。但你也可以用Python来创建或修改PPT文件。本文将告诉你如何使用Python-pptx模块自动或用PPT模板生成ppt,以及如何通过实例修改现有的PPT。

(文末送福利)

1.Python模块python-pptx。

  1. python-pptx是Python的一个处理ppt文件的库。它的重点是读写,不能导出,也没有渲染功能。

  2. 在使用python-pptx模块之前,需要在终端运行命令**pip3 install -i [pypi.doubanio.com/simple/pyth…]

    $ pip3 install -i https://pypi.doubanio.com/simple/ python-pptx
    Looking in indexes: https://pypi.doubanio.com/simple/
    Collecting python-pptxDownloading https://pypi.doubanio.com/packages/eb/c3/bd8f2316a790291ef5aa5225c740fa60e2cf754376e90cb1a44fde056830/python-pptx-0.6.21.tar.gz (10.1 MB)|████████████████████████████████| 10.1 MB 2.1 MB/s            Preparing metadata (setup.py) ... done
    Requirement already satisfied: lxml>=3.1.0 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from python-pptx) (4.6.2)
    Requirement already satisfied: Pillow>=3.3.2 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from python-pptx) (9.0.1)
    Requirement already satisfied: XlsxWriter>=0.5.7 in /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages (from python-pptx) (1.3.7)
    Using legacy 'setup.py install' for python-pptx, since package 'wheel' is not installed.
    Installing collected packages: python-pptxRunning setup.py install for python-pptx ... done
    Successfully installed python-pptx-0.6.21
  3. 在终端中运行命令pip show python-pptx来确认安装。

    $ pip show python-pptx
    Name: python-pptx
    Version: 0.6.21
    Summary: Generate and manipulate Open XML PowerPoint (.pptx) files
    Home-page: http://github.com/scanny/python-pptx
    Author: Steve Canny
    Author-email: python-pptx@googlegroups.com
    License: The MIT License (MIT)
    Location: /Library/Frameworks/Python.framework/Versions/3.7/lib/python3.7/site-packages
    Requires: lxml, Pillow, XlsxWriter
    Required-by:

2.如何使用python-pptx模块创建一个带有简单文本的PPT。

  1. 下面的示例源代码将使用python-pptx模块创建一个PPT。

  2. 它还将设置PPT的标题和副标题文本,然后将其保存为一个pptx文件。

    # Import the Presentation class from the pptx module.
    from pptx import Presentation# Create an instance of the Presentation class.
    prs = Presentation()
    # Create the title slide.
    title_slide_layout = prs.slide_layouts[0]
    # Add the title slide to the PPT slides array.
    slide = prs.slides.add_slide(title_slide_layout)# Get the PPT title object.
    title = slide.shapes.title
    # Get the PPT subtitle object.
    subtitle = slide.placeholders[1]# Set the PPT title.
    title.text = "Hello python-pptx Module!"
    # Set the PPT title slide sub title.
    subtitle.text = "pip install python-pptx"# Save the PPT to a .pptx file.
    prs.save("test.pptx")

3.如何使用python-pptx模块在PPT文件中添加图表。

  1. 下面的源代码可以创建一个图表并将其添加到输出的PPT文件中。

    # Import the Presentation class from the pptx module.
    from pptx import Presentation
    # Import the ChartData class form the pptx.chart.data package.
    from pptx.chart.data import ChartData
    # Import the chart type constants variable.
    from pptx.enum.chart import XL_CHART_TYPE
    # Import the units type.
    from pptx.util import Inches# Create the Presentation object to build the PPT file.
    prs = Presentation()
    # Add a slide to the PPT file.
    slide = prs.slides.add_slide(prs.slide_layouts[5])# Create the ChartData object to save the chart data.
    chart_data = ChartData()
    # Save the categories data in an array, the categories data will be displayed in the horizontal x axis .
    chart_data.categories = ['Java', 'Python', 'JavaScript']
    # Save the series data in a tuple, the series data will be displayed in the vertial y axis.
    chart_data.add_series('Series 1', (19.2, 21.4, 16.7))# Define the x, y axis unit.
    x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5)# Add the column chart to the PPT slide.
    slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data
    )# Save the PPT file.
    prs.save('chart-01.pptx')

4.如何使用PPT模板用Python-pptx模块生成PPT文件。

  1. 准备一个PPT模板文件(你可以从网上下载一个,或者自己创建一个PPT模板文件)。

  2. 加载PPT模板文件,使用python-pptx模块在你的Python源代码中使用指定的幻灯片样式。

  3. 向PPT模板文件添加数据,并生成一个新的PPT文件。

  4. 下面是源代码的例子。

    # Import the pptx module Presentation class.
    from pptx import Presentation# Import the pptx x axis unit.
    from pptx.util import Inches
    from pptx.util import Cm #Inches
    # Import the ChartData class.
    from pptx.chart.data import ChartData# Import the Chart type XL_CHART_TYPE.
    from pptx.enum.chart import XL_CHART_TYPE
    from pptx.enum.chart import XL_LEGEND_POSITIONif __name__ == '__main__':# Create the Presentation object based on the template PPT file.prs = Presentation('template.pptx')# Add the first slide, title only slide.title_only_slide_layout = prs.slide_layouts[5]slide = prs.slides.add_slide(title_only_slide_layout)shapes = slide.shapes# Set the slide title textshapes.title.text = 'Report'# Define the chart table data in an array.name_objects = ["object1", "object2", "object3"]name_AIs = ["AI1", "AI2", "AI3"]val_AI1 = (19.2, 21.4, 16.7)val_AI2 = (22.3, 28.6, 15.2)val_AI3 = (20.4, 26.3, 14.2)val_AIs = [val_AI1, val_AI2, val_AI3]# Define the chart table style.rows = 4cols = 4top  = Cm(12.5)left  = Cm(3.5) #Inches(2.0)width = Cm(24) # Inches(6.0)height = Cm(6) # Inches(0.8)# Add the chart table to the slide.table = shapes.add_table(rows, cols, left, top, width, height).table# Set the table column width.table.columns[0].width = Cm(6)# Inches(2.0)table.columns[1].width = Cm(6)table.columns[2].width = Cm(6)table.columns[3].width = Cm(6)# Set the table text row.table.cell(0, 1).text = name_objects[0]table.cell(0, 2).text = name_objects[1]table.cell(0, 3).text = name_objects[2]# Fill data to the table.table.cell(1, 0).text = name_AIs[0]table.cell(1, 1).text = str(val_AI1[0])table.cell(1, 2).text = str(val_AI1[1])table.cell(1, 3).text = str(val_AI1[2])table.cell(2, 0).text = name_AIs[1]table.cell(2, 1).text = str(val_AI2[0])table.cell(2, 2).text = str(val_AI2[1])table.cell(2, 3).text = str(val_AI2[2])table.cell(3, 0).text = name_AIs[2]table.cell(3, 1).text = str(val_AI3[0])table.cell(3, 2).text = str(val_AI3[1])table.cell(3, 3).text = str(val_AI3[2])# Define the ChartData object.chart_data = ChartData()chart_data.categories = name_objectschart_data.add_series(name_AIs[0], val_AI1)chart_data.add_series(name_AIs[1], val_AI2)chart_data.add_series(name_AIs[2], val_AI3)# Add the chart to the PPT file.x, y, cx, cy = Cm(3.5), Cm(4.2), Cm(24), Cm(8)graphic_frame = slide.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data)chart = graphic_frame.chartchart.has_legend = Truechart.legend.position = XL_LEGEND_POSITION.TOPchart.legend.include_in_layout = Falsevalue_axis = chart.value_axisvalue_axis.maximum_scale = 100.0value_axis.has_title = Truevalue_axis.axis_title.has_text_frame = Truevalue_axis.axis_title.text_frame.text = "False positive"value_axis.axis_title.text_frame.auto_size# Save a new PPT file based on the template.prs.save('test_template.pptx')

知道你对Python感兴趣的话,便准备了这套python学习资料,毕竟小编也是用这套方法自学并成功上岸的

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑培训的。

一方面是学习时间相对较短,学习内容更全面更集中。

零基础Python学习资源介绍

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(学习教程文末领取哈)

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈



在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已为大家备好,朋友们如果需要可以微信扫描下方二维码添加,输入"领取资料" 可免费领取全套资料【有什么需要协作的还可以随时联系我】朋友圈也会不定时的更新最前言python知识。
在这里插入图片描述

好文推荐

了解python的前景: https://blog.csdn.net/weixin_49892805/article/details/127196159

python有什么用: https://blog.csdn.net/weixin_49892805/article/details/127214402

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_410302.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

hbuilderx ios自定义基座真机测试

任务描述: 用uniapp框架写了一个app应用,需要在ios苹果手机上真机运行测试。 hbuilderx不再支持标准基座真机运行了,需要自定义基座运行 制定自定义基座需要准备的材料: ios的appid,profile文件,私钥证书&#xff0…

动视是否磨灭了暴雪的灵魂?

对于成千上万的人,也许是数百万人来说,暴雪是——或者曾经是——一家特殊的公司。 暴雪——游戏开发的典范 对于奇幻世界的关注,暴雪是无与伦比的。如果游戏没有准备好,它就不会发布。1998 年,尽管《魔兽争霸&#xf…

算法复杂度分析

复杂度分析 参考:《算法导论》、复杂度 - OI Wiki (oi-wiki.org)、一文弄懂算法的时间和空间复杂度分析 - 知乎 (zhihu.com)、算法讲解之复杂度分析 - 知乎 (zhihu.com)、算法的时间复杂度和空间复杂度-总结_zolalad的博客-CSDN博客_时间复杂度 算法复杂度分析的阶段…

梦开始的地方 —— C语言数据在内存中的存储(整形+浮点型)

文章目录整形在内存中的存储1. 数值类型的基本分类2. 整形在内存中的存储1. 原码、反码、补码2. 内存中为什么要存放补码?3. 大小端存储4. 无符号有符号数练习5. 有符号数无符号数小结浮点型在内存中的存储IEEE 754整形在内存中的存储 1. 数值类型的基本分类 整形…

AJAX基础+Axios快速入门+JSON使用+综合案例

目录1、 AJAX1.1 概述1.1.1 作用1.1.2 同步和异步1.2 快速入门1.2.1 服务端实现1.2.2 客户端实现1.3 案例1.3.1 需求1.3.2 分析1.3.2 后端实现1.3.3 前端实现2、 Axios异步框架2.1 基本使用2.2 快速入门2.2.1 后端实现2.2.2 前端实现2.3 请求方法别名3、 JSON3.1 概述3.2 JSON基…

GAS技能系统

HUT -》 在\Intermediate\Build\Win64\UE4Editor\Inc\的目录下 找到generated 头文件和cpp文件 里面有HUT根据UCLASS 和 Generate Body 生成的 定义 以及声明宏(UFUNCTION 里的CustomThunk元可以让用户自己手动添加宏定义和宏声明) 将wildcard改为通配符然后手动将自定义的…

Terraform 华为云实践 项目初始化

这个架构就是DNS加上负载均衡加ecs,最后vpc的架构。网络这块是DNS和VPC,对象存储是用来做terraform的后端来配置。 项目的初始化 Terraform Registry 华为云的terraform链接如上所示。 先将项目的目录结构建好,modules是我们的模块&#xf…

来一场关于元宇宙的灵魂辩论|BOOK DAO内容共建招募

「 备选问题 」1. 你认为元宇宙最重要的特点是什么?用一句话描述你理解的 “元宇宙”2. 元宇宙是游戏2.0吗?它与游戏有什么不同?3. 元宇宙是否需要区块链?是否需要NFT?各扮演什么角色?4. 元宇宙是否需要经济…

大数据项目之电商数仓、电商业务简介、电商业务流程、电商常识、业务数据介绍、电商业务表、后台管理系统

文章目录5. 电商业务简介5.1 电商业务流程5.2 电商常识5.2.1 SKU和SPU5.2.2 平台属性和销售属性5.2.2.1 平台属性5.2.2.2 销售属性6. 业务数据介绍6.2 电商业务表6.2.1 收藏商品6.2.2 加购物车6.2.3 领用优惠券6.2.4 下单6.2.5 支付6.2.6 退单6.2.7 退款6.2.8 评价6.3 后台管理…

部署简易POD image自己定义镜像

k8s部署pod apiversion: 版本 kind: 类型 metadata: 字面意识,元素信息,POD信息 name: POD名字 labels: 字母意识,标签 通过拓扑 label 进行副本调度 label的使用无非就是增删改查 还有个重要的标签namespace(命名空间&…

针对垃圾渗滤液中膜产水脱氮工艺的设计,除氨氮树脂

垃圾渗滤液是指来源于垃圾填埋场中垃圾本身含有的水分、进入填埋场的雨雪水及其他水分,扣除垃圾、覆土层的饱和持水量,并经历垃圾层和覆土层而形成的一种高浓度的有机废水,有堆积的准备用于焚烧的垃圾渗漏出的水分。为什么要处理垃圾渗滤液&a…

黑马点评-达人探店

摘要:达人探店业务: 本质是发表blog和点赞等功能。利用Redis的Set实现点赞与取消点赞,然后利用SortedSet对点赞功能进行改进实现点赞排行的功能。 在学习的过程中,我们不应该急于写代码,首先分析业务逻辑,…

SpringBoot项目启动执行任务的几种方式

经过整理后得到以下几种常用方式,供大家参考。 1. 使用过滤器 init() :该方法在tomcat容器启动初始化过滤器时被调用,它在 Filter 的整个生命周期只会被调用一次。可以在这个方法中补充想要执行的内容。 Component public class MyFilter …

vs2017 外网远程调试

外网远程调试:由于外网的目标电脑IP无法直接访问,则需要第三方内网穿透工具辅助,本文使用NATAPP进行 注册一个账号:NATAPP -注册完成,登录后,在购买隧道中选择Free免费购买一个 购买成功后,在我的隧道中可…

突破出行市场桎梏,需要高端出行的精神内核?

如果高端出行是一本书,那么豪车可能只是封面和封底。真正重要的,是隐藏其中的服务的精神与体验的内核。 这一点,国内高端出行市场的探索者们应当深有体会。从早期高端巡游出租车,到BBA豪华车势力曾经推动的高端出行网约车&#x…

「设计模式」工厂方法模式

文章目录一、概念二、用途三、实现方式四、工厂方法模式的利与弊为什么要使用工厂来创建对象?为什么每种对象要单独有一个工厂?五、工厂方法与简单工厂的区别六、总结参考资料一、概念 工厂方法模式(Factory Method Pattern)又称为工厂模式,…

前端工具——01-VS Code的使用

前言 文章标题:《第一次使用 VS Code 时你应该知道的一切配置》。本文的最新内容,更新于 2020-06-19。大家完全不用担心这篇文章会过时,因为随着 VS Code 的版本更新和插件更新,本文也会随之更新。 本文的最新内容,也会…

腾讯云centos7安装mysql5.7

昨天服务器上的数据库被勒索了,重装系统之后不得不再装一次数据库,踩了很多坑,在此记录安装过程。 首先把centos7自带的数据库mariadb卸载掉,把MySQL的相关文件夹都删掉。 查看组件服务 rpm -qa | grep -i mariadb rpm -qa | gr…

Mybatics-连接配置

1、mysql连接数_MySQL配置参数优化 1.1、优化最大连接数max_connections 是MySQL最大并发连接数默认值是151 MySQL允许的最大连接数上限是32767 实际连接数是最大连接数的85%较为合适 查询数据库目前设置的最大并发连接数是多少 查询数据库目前实际连接的并发数是多少 在MyS…

SpringBoot集成JWT(极简版):

文章目录1.JWT依赖2.JWT工具类TokenUtils.java3.token示例4.拦截器JwtInterceptor.java5.拦截器设置InterceptorConfig.java6.统一接口WebConfig.java7.设置自定义头配置 CorsConfig .java8.GlobalExceptionHandler.java9.ServiceException.java10.设置token:11.最终效果&#…