python自动化系列:自动制作PPT演示稿(多种元素)

作品介绍

作品名称:自动制作PPT演示稿(多种元素)

开发环境:PyCharm 2023.3.4 + python3.7

用到的库:pptx

作品简介:该实例使用python-pptx库从头开始创建一个包含多种元素(如标题、文本、图片、图表)的PowerPoint演示文稿。

实现过程

一、代码设计

以下是代码的工作流程:

  1. 初始化与幻灯片布局:

  2. 首先导入必需的库,并创建一个Presentation对象。

  3. 使用不同的幻灯片布局(如标题幻灯片、标题+内容、两栏内容等)来添加幻灯片,通过索引访问布局(如prs.slide_layouts[0]对应标题幻灯片布局)。

  4. 添加文本:

  5. 直接访问幻灯片的形状集合,通过索引(如placeholders[0]通常是标题,placeholders[1]是副标题或其他内容区域)来定位并修改文本。

  6. 插入图片:

  7. 使用add_picture方法指定图片路径、在幻灯片上的位置以及尺寸,实现图片的插入。

  8. 创建图表:

  9. 通过CategoryChartData创建数据源,定义分类和系列数据。

  10. 使用add_chart方法添加图表到幻灯片,指定图表类型、位置和大小。

  11. 自定义文本框与对齐:

  12. 在最后一个幻灯片中手动添加了一个文本框,并通过调整位置使其居中。

  13. 设置文本段落的对齐方式为居中。

  14. 保存演示文稿:

  15. 最后,使用save方法保存创建好的演示文稿到指定路径。


"""
利用python制作ppt演示稿
基础知识:
Inches(10)=25.4cm 即默认的ppt宽度值
Inches(7.5)=25.4cm*0.75=19.05cm
"""
from pptx import Presentation
from pptx.util import Inches
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE

# 创建演示文稿对象
prs = Presentation()

# 添加第一个幻灯片:标题和副标题
slide1 = prs.slides.add_slide(prs.slide_layouts[0])  # 使用模板0
title = slide1.shapes.title
title.text = '欢迎使用Python-pptx'

# 添加副标题
subtitle = slide1.placeholders[1]
subtitle.text = '自动化生成PowerPoint演示文稿'

# 添加第二个幻灯片:标题和内容
slide2 = prs.slides.add_slide(prs.slide_layouts[9])  # 使用模板9
title2 = slide2.shapes.title
title2.text = '演示文稿中的内容'
# 添加内容
content = slide2.placeholders[1]
content.text = '广州市,简称“穗”,别称羊城、花城、五羊城,广东省辖地级市,是广东省省会、副省级市、国家中心城市、超大城市,地处中国华南地区、珠江下游、濒临南海,是广州都市圈核心城市,国务院批复确定的中国重要的中心城市、国际商贸中心和综合交通枢纽,世界一线城市。'

# 添加第三个幻灯片:插入图片
slide3 = prs.slides.add_slide(prs.slide_layouts[5])  # 使用模板5
title3 = slide3.shapes.title
title3.text = '演示文稿中的图片'
# 插入图片
img_path = './market.jpg'  # 更改为图片的实际路径
left = Inches(1)
top = Inches(2)
width = Inches(8)
height = Inches(4)
slide3.shapes.add_picture(img_path, left, top, width, height)

# 添加第四个幻灯片:插入图表
slide4 = prs.slides.add_slide(prs.slide_layouts[5])  # 使用模板5
title4 = slide4.shapes.title
title4.text = '演示文稿中的图表'
# 插入图表
chart_data = CategoryChartData()
chart_data.categories = ['第一季度', '第二季度', '第三季度', '第四季度']
chart_data.add_series('参观人数', (20, 40, 30, 50))
x, y, cx, cy = Inches(1), Inches(2), Inches(8), Inches(4)
chart = slide4.shapes.add_chart(XL_CHART_TYPE.COLUMN_CLUSTERED, x, y, cx, cy, chart_data).chart

# 添加第五个幻灯片:结束语
slide5 = prs.slides.add_slide(prs.slide_layouts[6])  # 使用模板6
# 在幻灯片上添加文本框,设置其大小和位置
left = (prs.slide_width - Inches(6)) / 2  # 假设文本框宽度为6英寸
top = (prs.slide_height - Inches(1)) / 2  # 假设文本框高度为1英寸
textbox = slide5.shapes.add_textbox(left, top, Inches(6), Inches(1))
# 添加文本到文本框
tf = textbox.text_frame
p = tf.add_paragraph()
p.text = '谢谢观看'
p.alignment = 2  # 2 代表水平居中对齐

# 保存演示文稿
prs.save('example.pptx')
print('制作完成!')

关于Python技术储备

学好 Python 不论是就业还是做副业赚钱都不错,但要学会 Python 还是要有一个学习规划。最后大家分享一份全套的 Python 学习资料,给那些想学习 Python 的小伙伴们一点帮助!

整理出了一套系统的学习路线,这套资料涵盖了诸多学习内容:开发工具,基础视频教程,项目实战源码,51本电子书籍,100道练习题等。相信可以帮助大家在最短的时间内,能达到事半功倍效果,用来复习也是非常不错的。

👉Python学习路线汇总👈

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

👉Python必备开发工具👈

👉Python学习视频合集👈

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

👉实战案例👈

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

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

这份完整版的Python全套学习资料已经打包好了,朋友们如果需要可以微信添加文末 Python笔记领取即可获取二维码免费获取

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

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

相关文章

中国能源统计年鉴(1986-2023年)

数据年份:1986-2023年,无1987、1988、1990三年,1991-2023年齐 数据格式:pdf、excel 数据内容:《中国能源统计年鉴》是一部反映中国能源建设、生产、消费、供需平衡的权威性资料书。 共分为7个篇章:1.综合&a…

AI赋能天气:微软研究院发布首个大规模大气基础模型Aurora

编者按:气候变化日益加剧,高温、洪水、干旱,频率和强度不断增加的全球极端天气给整个人类社会都带来了难以估计的影响。这给现有的天气预测模型提出了更高的要求——这些模型要更准确地预测极端天气变化,为政府、企业和公众提供更…

Python-矩阵元素定位

[题目描述] 小理得到了一个 n 行 m 列的矩阵,现在他想知道第 x 行第 y 列的值是多少,请你帮助他完成这个任务。输入格式: 第一行包含两个数 n 和m ,表示这个矩阵包含 n行 m 列。从第 2 行到第 n1 行,每行输入 m 个整数…

vue中用JSON格式查看数据(vue-json-viewer)

vue中把string用JSON格式展示数据 vue-json-viewer使用 官网地址:https://www.npmjs.com/package/vue-json-viewer 1. 安装插件vue-json-viewer //vue2 npm install vue-json-viewer2 --save //vue3 npm install vue-json-viewer3 --save2. 引入vue-json-viewer…

“论SOA在企业集成架构设计中的应用”写作框架,系统架构设计师

论文真题 企业应用集成(Enterprise Application Integration, EAI)是每个企业都必须要面对的实际问题。面向服务的企业应用集成是一种基于面向服务体系结构(Service-OrientedArchitecture,SOA)的新型企业应用集成技术,强调将企业和组织内部的资源和业务…

【C语言】函数执行背后的秘密:函数栈帧的创建和销毁超详解

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】 目录 1. 什么是函数栈帧 2. 理解函数栈帧能解决什么问题呢? 3. 函数栈帧的创建和销毁解析 3.1 什么是栈? 3.2 认识相关寄存器和汇编指…

vscode在windows系统上进行C/C++环境配置

随手笔记前言 vscode在windows系统上进行C/C环境配置 步骤如下 第一步 下载安装VSCode 这应该是最简单的一步,相信大家自己就可以完成。如果在vscode官网感觉下载特别慢的话,可以去试一下腾讯软件中心,我都是在这个网页上下载的。下载好之…

Huffman树——AcWing 148. 合并果子

目录 Huffman树 定义 运用情况 注意事项 解题思路 AcWing 148. 合并果子 题目描述 运行代码 代码思路 其它代码 代码思路 Huffman树 定义 它是一种最优二叉树。通过构建带权路径长度最小的二叉树,经常用于数据压缩等领域。 运用情况 在数据压缩中&a…

RK3568开发笔记(三):瑞芯微RK3588芯片介绍,入手开发板的核心板介绍

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/139905873 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

格雷码计数器

目录 描述 输入描述: 输出描述: 参考代码 描述 实现4bit位宽的格雷码计数器。 电路的接口如下图所示。 输入描述: input clk, input rst_n 输出描述: output reg [3:0] gray_out 参考代码 timescale 1ns/1nsmod…

等级保护测评中的建设整改要做什么?

随着信息技术的飞速发展,信息系统已成为现代社会运转的核心。然而,网络安全问题的日益突出,使得信息系统的安全稳定运行面临着严峻挑战。为了有效应对这一挑战,我国推行了等级保护制度,其中建设整改作为等级保护工作的…

指令微调数据集构建方法

指令微调(Instruction Tuning),是指使用自然语言形式的数据对预训练后的大语言模型进行参数微调,在一些文章中也称为有监督微调(Supervised Fine-tuning,SFT)或多任务提示训练(Multi…

ONLYOFFICE8.1版本桌面编辑器测评

OO官方链接点这里:ONLYOFFICE 文档 8.1 现已发布:功能全面的 PDF 编辑器、幻灯片版式、优化电子表格的协作等等 | ONLYOFFICE 博客 一、界面与用户体验 整体布局和设计的美观性、易用性: ONLYOFFICE 8.1 版本的桌面编辑器展现出了令人眼前一亮…

【ISAC】通感一体化讲座(刘凡)

高斯信道下通信感知一体化的性能极限(刘凡) 文章目录 背景背景 通信和感知在硬件结构上相似,高效地利用资源,实现相互的增益; 感知是基于不同的任务,比如目标检测(检测概率,虚警概率),估计任务(从收到的信号中去估计有用的参数,均方误差,CRB),识别(知道目标的…

开源seata的分布式事务解决方案-XA、AT、TCC、SAGA哪个模式好

分布式事务是分布式系统中非常重要的一部分。假设一个用户购买商品的业务逻辑,系统有3个微服务组成,分别是订单服务、账户服务、库存服务,用户在提交订单后会从用户账户余额中扣款,同时扣减库存数量。在这样的场景下扣款和减库存需…

Vue核心指令解析:探索MVVM与数据操作之美

文章目录 前言一、Vue.js1. MVVM模式介绍2. 单页面组件介绍及案例讲解3. 插值表达式介绍及案例讲解 二、Vue常用指令详解1. 数据绑定指令v-textv-html 2. 条件渲染指令v-ifv-show 3. 列表渲染指令v-for循环数组介绍及案例讲解循环对象介绍及案例讲解 4. 事件监听指令v-on事件修…

【unity小技巧】unity事件系统创建通用的对象交互的功能

文章目录 前言实现1. **InteractEvent 类**:2. **Interact 类**:3. **Player 类**:4. **Chest 类**: 工作流程说明:开单个箱子按钮触发打开很多箱子拾取物品(传参)参考完结 前言 游戏开发过程中…

有效利用MRP能为中小企业带来什么?

在离散制造企业,主流的生产模式主要为面向订单生产和面向库存生产(又称为预测生产),在中小企业中,一般为面向订单生产,也有部分面向库存和面向订单混合的生产方式(以面向订单为主,面…

【初阶数据结构】深入解析栈:探索底层逻辑

🔥引言 本篇将深入解析栈:探索底层逻辑,理解底层是如何实现并了解该接口实现的优缺点,以便于我们在编写程序灵活地使用该数据结构。 🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 &#x1…

Kylin系列:架构和高级功能详解

目录 一、Kylin的架构 1.1 总体架构概述 1.2 数据源 1.3 元数据存储 1.4 构建引擎 1.5 存储引擎 1.6 查询引擎 1.7 用户接口 二、Kylin的高级功能 2.1 多维立方体(Cube) 2.1.1 Cube的定义 2.1.2 Cube的构建 2.2 查询优化 2.3 数据模型和星型模式 2.3.1 数据模…