python使用演示文稿-小白学Python(4)——用Python创建PPT

这篇博客介绍了如何使用python-pptx库在Python中创建和更新PowerPoint文件。通过这个库,可以方便地自动生成幻灯片,包括设置标题、副标题、项目符号列表、文本框、图片和形状,以及添加表格。示例代码展示了各种功能的实现,适用于自动化报告生成和批量编辑演示文稿。
摘要由CSDN通过智能技术生成

python-pptx是一个用于创建和更新PowerPoint(.pptx)文件的Python库。

典型的用途是从数据库内容生成自定义的PowerPoint演示文稿,可通过单击Web应用程序中的链接进行下载。一些开发人员使用它根据工作管理系统中保存的信息自动生成可立即呈现的工程状态报告。它还可以用于对演示文稿库进行批量更新,或者仅仅是为了自动生成一个或两个幻灯片,这对于手动操作来说是繁琐的。

安装

python-pptx 是托管在pypi上的,因此使用pip安装很简单:

在cmd中输入pip install python-pptx ,即可安装最新版本。

安装好后,可以通过 pip list ,来验证安装的版本,目前我的版本为python-pptx 0.6.18。

1570232-20190813093912416-1763550470.png

安装好后,让我们看看如何使用。

举例:

Hello World! 生成PPT

from pptx import Presentation

prs = Presentation()

title_slide_layout = prs.slide_layouts[0]

slide = prs.slides.add_slide(title_slide_layout)

title = slide.shapes.title

subtitle = slide.placeholders[1]

title.text = "Hello, World!"

subtitle.text = "python-pptx was here!"

prs.save('test.pptx')

F5执行后,生成'test.pptx'文件,打开如下:

1570232-20190813095933151-1254388453.png

当然,你可以任意修改标题,副标题等。

Bullet slide 添加项目符号

from pptx import Presentation

prs = Presentation()

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 = '公司介绍'

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

p = tf.add_paragraph()

p.text = '企业目标'

p.level = 3

prs.save('test.pptx')

1570232-20190813102428323-986654027.png

add_textbox添加文本框、字体

from pptx import Presentation

from pptx.util import Inches, Pt

prs = Presentation()

blank_slide_layout = prs.slide_layouts[6]

slide = prs.slides.add_slide(blank_slide_layout)

left = top = width = height = Inches(1)

txBox = slide.shapes.add_textbox(left, top, width, height)

tf = txBox.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('test.pptx')

1570232-20190813103428679-639553802.png

add_picture 添加图片

from pptx import Presentation

from pptx.util import Inches

img_path = 'mei.jpg' #图片名称一定要对

prs = Presentation()

blank_slide_layout = prs.slide_layouts[6]

slide = prs.slides.add_slide(blank_slide_layout)

left = top = Inches(1)

pic = slide.shapes.add_picture(img_path, left, top)

left = Inches(5)

height = Inches(5.5)

pic = slide.shapes.add_picture(img_path, left, top, height=height)

prs.save('test.pptx')

1570232-20190813105311237-100175191.png

add_shape 添加形状

from pptx import Presentation

from pptx.enum.shapes import MSO_SHAPE

from pptx.util import Inches

prs = Presentation()

title_only_slide_layout = prs.slide_layouts[5]

slide = prs.slides.add_slide(title_only_slide_layout)

shapes = slide.shapes

shapes.title.text = '添加自选图形'

left = Inches(0.93) # 0.93" centers this overall set of shapes

top = Inches(3.0)

width = Inches(1.75)

height = Inches(1.0)

shape = shapes.add_shape(MSO_SHAPE.PENTAGON, left, top, width, height)

shape.text = 'Step 1'

left = left + width - Inches(0.4)

width = Inches(2.0) # chevrons need more width for visual balance

for n in range(2, 6):

shape = shapes.add_shape(MSO_SHAPE.CHEVRON, left, top, width, height)

shape.text = 'Step %d' % n

left = left + width - Inches(0.4)

prs.save('test.pptx')

1570232-20190813105946550-40499430.png

可以通过调整图形和尺寸,对图形进行修改:

1570232-20190813113121133-435155309.png

add_table 添加表格

from pptx import Presentation

from pptx.util import Inches

prs = Presentation()

title_only_slide_layout = prs.slide_layouts[5]

slide = prs.slides.add_slide(title_only_slide_layout)

shapes = slide.shapes

shapes.title.text = '添加表格'

rows = 3

cols = 2

left = top = Inches(2.0)

width = Inches(6.0)

height = Inches(0.8)

table = shapes.add_table(rows, cols, left, top, width, height).table

# set column widths

table.columns[0].width = Inches(2.0)

table.columns[1].width = Inches(4.0)

# write column headings

table.cell(0, 0).text = '班级'

table.cell(0, 1).text = '姓名'

# write body cells

table.cell(1, 0).text = '一班'

table.cell(1, 1).text = '小微'

table.cell(2, 0).text = '二班'

table.cell(2, 1).text = '小王'

prs.save('test.pptx')

1570232-20190813114102590-1765314037.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值