赞
踩
好看的皮囊千篇一律,有趣的灵魂两百多斤。
和Word、Excel承载数据的能力相比,PPT的应用重点在于表演。
比如一场发布会、一场演说、一次产品展示、一次客户沟通……
正常情况下,用PowerPoint等软件制作PPT是明智的选择,简单实用。
但如果需要批量或者自动化处理PPT文件时,用Python就能节省很多时间。
比如:
处理PPT的Python库,主要有两类:
pywin32
,调用操作系统上已装好的PPT软件。python-pptx
,根据OpenXML规范解析XML文件。日常处理推荐使用python-pptx
模块,它基于PIL
处理图片,基于xlsxwriter
处理图表。
但如果需要批量转换PPT文件格式,如导出成PDF,那就得用pywin32
,而且只能在Windows操作系统上操作。
本文主要介绍python-pptx
用法,模块安装:pip install python-pptx
。
注意:python-pptx
暂时还不支持SmartArt和动画。如果需要批量生成,就得自己操作XML文件中对应内容。
PPT中基本元素包括:
slide.shapes
可访问slide内元素。paragraph.add_run()
生成。import pathlib from pptx import Presentation from pptx.enum.dml import MSO_THEME_COLOR from pptx.util import Inches, Pt path = list(pathlib.Path.cwd().parents)[1].joinpath('data/automate/005ppt') out_path = path.joinpath('005ppt_basic.pptx') prs = Presentation() # 查看所有布局 for lo in prs.slide_layouts: print(lo.name) # 创建标题页 title_slide_layout = prs.slide_layouts[0] print(w, h, lo, ma) slide = prs.slides.add_slide(title_slide_layout) title = slide.shapes.title subtitle = slide.placeholders[1] title.text = '只差一个程序员了' subtitle.text = '程一初' # 设置背景色 fill = slide.shapes[0].fill fill.solid() fill.fore_color.theme_color = MSO_THEME_COLOR.ACCENT_1 fill.fore_color.brightness = -0.25 # 创建第一页内容 bullet_slide_layout = prs.slide_layouts[1] slide = prs.slides.add_slide(bullet_slide_layout) shapes = slide.shapes title_shape = shapes.title body_shape = shapes.placeholders[1] title_shape.text = 'Python1024' tf = body_shape.text_frame tf.text = '第一级内容' p = tf.add_paragraph() p.text = '第一级段落内容' p.level = 1 p = tf.add_paragraph() p.text = '第二级段落内容' p.level = 2 run = p.add_run() # 与`python-docx`里的用法类似,但内容设置在`text`中 run.text = '自定义字体' run.font.name = '微软雅黑' run.font.size = Pt(25) run.font.bold = True print(tf.paragraphs[0].text) # 从一个空白页开始创建内容 blank_slide_layout = prs.slide_layouts[6] slide = prs.slides.add_slide(blank_slide_layout) left = top = width = height = Inches(1) txt_box = slide.shapes.add_textbox(left, top, width, height) tf = txt_box.text_frame tf.text = '文本框内容' p = tf.add_paragraph() p.text = '文本框内增加一个粗体段落' p.font.bold = True p = tf.add_paragraph() p.text = '文本框内增加一个大字体段落' p.font.size = Pt(40) prs.save(out_path)
PPT中图相关元素有3类:
import pathlib
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。