作品介绍
作品名称:自动制作PPT演示稿(多种元素)
开发环境:PyCharm 2023.3.4 + python3.7
用到的库:pptx
作品简介:该实例使用python-pptx库从头开始创建一个包含多种元素(如标题、文本、图片、图表)的PowerPoint演示文稿。
实现过程
一、代码设计
以下是代码的工作流程:
-
初始化与幻灯片布局:
-
首先导入必需的库,并创建一个
Presentation
对象。 -
使用不同的幻灯片布局(如标题幻灯片、标题+内容、两栏内容等)来添加幻灯片,通过索引访问布局(如
prs.slide_layouts[0]
对应标题幻灯片布局)。 -
添加文本:
-
直接访问幻灯片的形状集合,通过索引(如
placeholders[0]
通常是标题,placeholders[1]
是副标题或其他内容区域)来定位并修改文本。 -
插入图片:
-
使用
add_picture
方法指定图片路径、在幻灯片上的位置以及尺寸,实现图片的插入。 -
创建图表:
-
通过
CategoryChartData
创建数据源,定义分类和系列数据。 -
使用
add_chart
方法添加图表到幻灯片,指定图表类型、位置和大小。 -
自定义文本框与对齐:
-
在最后一个幻灯片中手动添加了一个文本框,并通过调整位置使其居中。
-
设置文本段落的对齐方式为居中。
-
保存演示文稿:
-
最后,使用
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笔记领取即可获取二维码免费获取