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

### 使用 `python-pptx` 创建和编辑 PowerPoint 文件 #### 导入必要模块 为了使用 `python-pptx` 库来创建或修改 PPT 文件,首先需要导入该库以及其他可能需要用到的模块: ```python from pptx import Presentation ``` 此语句用于初始化一个新的演示文稿对象或将现有的 `.pptx` 文件加载到程序中[^1]。 #### 创建新的演示文稿 如果要新建一个空白的PowerPoint文档,则可以简单地实例化 `Presentation()` 类而无需传递任何参数: ```python prs = Presentation() ``` 这会创建一个默认布局的新演示文稿。可以通过向其中添加幻灯片来进行进一步定制。 #### 添加新幻灯片并设置内容 通过调用 `slides.add_slide(layout)` 方法可以在当前演示文中增加一张新的幻灯片,并指定其版面设计(layout)。对于每张新增加的幻灯片来说,还可以为其设定标题和其他文本框的内容: ```python slide_layout = prs.slide_layouts[0] # 获取预定义的第一种样式作为模板 new_slide = prs.slides.add_slide(slide_layout) title_shape = new_slide.shapes.title body_shape = new_slide.placeholders[1] title_shape.text = "这是一个测试标题" body_shape.text = "这是副标题或其他说明文字..." ``` 上述代码片段展示了如何基于选定的布局模式构建自定义幻灯片,并填充相应的文本信息[^3]。 #### 修改现有PPT中的图片属性 当处理已有的PPT文件时,有时也需要访问特定元素的信息,比如获取某张幻灯片上某个形状内的图像格式等细节。下面的例子显示了怎样读取第一页幻灯片第七个图形对象所关联的图片类型: ```python pptx_test = Presentation('example.pptx') slide = pptx_test.slides[0] print(slide.shapes[6].image.content_type) # 输出可能是'image/png' ``` 这段脚本能够帮助开发者快速定位并提取所需的数据项,从而实现更复杂的逻辑控制[^2]。 #### 保存更改后的PPT文件 完成所有的编辑工作之后,记得调用 `save(filename)` 函数将最终版本存盘: ```python prs.save('output_presentation.pptx') ``` 这样就可以把所有对演示文稿所做的改动永久记录下来。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值