python-pptx模块的简单使用

python-pptx模块的使用

应用背景

朋友,被每天手动更新ppt上的数据图表而烦恼。询问python如何自动化跑ppt的时候,才知道python原来还有“pptx”模块。
我们可以通过写脚本,来定时执行更新ppt内容

使用方法

在python文件中导入模块:

  • from pptx import Presentation
  • from pptx.util import Inches

但在cmd中有pip list显示的名称为

  • python-pptx
    在这里插入图片描述
  1. 文件选取与创建幻灯片
from pptx import Presentation
from pptx.util import Inches

prs = Presentation(r'C://Users/zhuang/Desktop/test_ppt.pptx')  #选择pptx文件,路径按照需求做更改
blank_slide_layout = prs.slide_layouts[3]   #布局选用空页
                                            #方括号内的数字,对应ppt中"开始"任务栏下的"新建幻灯片"的office主题(一共有11个,所以只能输入0~10)
slide = prs.slides.add_slide(blank_slide_layout)  #用空页布局创建一页幻灯片

在这里插入图片描述
如果没有指明文件路径,直接写如下代码

prs = Presentation()
pre.save(filename.pptx)

则会在该python文件的目录下, 生成一份最原始的pptx模板文件(里面什么都没有)

  1. 插入图片
left, top, width, height = Inches(13), Inches(1), Inches(5), Inches(5)
	#left为距离ppt左侧13英寸,此时我的电脑上图片在ppt右侧能被看见一小部分
	#top为距离ppt上侧1英寸
	#width、height为图片的长宽、高,都为5英寸
	#通过多次调整,大致感受图片的位置
img_path = r'C://Users/zhuang/Desktop/th.jpg' #图片路径
pic= slide.shapes.add_picture(img_path, left, top, width, height)  #在ppt指定位置按预设值添加图片
  1. 插入文本框
left, top, width, height = Inches(5),Inches(4),Inches(8),Inches(8)
tf = slide.shapes.add_textbox(left=left,top=top,width=width,height=height).text_frame
tf.text = "第一段"  #插入第一段文本
tf.text = "第二段"  #插入第二段文本
tf.text = "第三段"  #插入第三段文本
	#此时只会显示出"第三段"内容

left, top, width, height = Inches(3),Inches(6),Inches(8),Inches(2)
	#重新设定参数后,会有新的文本框生成
tf = slide.shapes.add_textbox(left=left,top=top,width=width,height=height).text_frame
tf.paragraphs[0].text = "第二段"  #插入第二段文本
  1. 保存
prs.save(r'C://Users/zhuang/Desktop/test_ppt.pptx')
	#如果不写prs.save(),那么就相当于在ppt里操作了半天最后没保存就退出了
    #如果保存路径与文件名写的是另一个文件,如prs.save(r'C://Users/zhuang/Desktop/test_test_ppt.pptx')
    #则会按照新路径和新名字,生成一份新文件

    #因此,周期性更新ppt可以:
    #1import datetime
    #2、writing_time = datetime.datetime.now().strftime("%Y-%m-%d)
    #3、psr.save(r'C://Users/zhuang/Desktop/{}test_ppt.pptx'.format(writing_time))
    #比如今天是2019-08-04,那么生成的文件名就会是"2019-08-04test_ppt",就可以每天运行

介绍一下简单的使用吧,还可以通过pandas读取SQL后的结果,再通过matplotlib进行可视化展示保存为图片后传入ppt

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值