当前位置:首页>python>仿真报告自动化 | Python操作PPT基础(一)

仿真报告自动化 | Python操作PPT基础(一)

  • 2026-09-08 13:43:40
仿真报告自动化 | Python操作PPT基础(一)

安装与导入第三方库 python-pptx

  • 安装第三方库 python-pptx:
pip install python-pptx
  • 导入Presentation:
from pptx import Presentation

新建,打开,保存PPT

  • 新建PPT文档,类似鼠标右键→新建→PPTX 演示文稿:
ppt = Presentation() #Presntation代表一个ppt
  • 打开已有PPT文档:
ppt = Presentation("E:/test.pptx")
  • 保存PPT文档:
ppt.save("E:/test.pptx")#如果窗口已打开此文档,save之前需关闭

幻灯片操作方法

  • 新建幻灯片:
slides = ppt.slides #幻灯片集合对象,幻灯片列表layouts = ppt.slide_layouts #获取幻灯片母板对象,母版列表slide1 = slides.add_slide(layouts[6]) #新建幻灯片并设置母版板式
layouts[6],代表空白母版,幻灯片母版如下图:
  • 从多个幻灯片中获取某一页幻灯片:
slide = slides[n] # n代表第几页幻灯片,类似列表 n从0开始print(slide is slide1) #n==0时 slide1和slide是同一个幻灯片对象 
  • 获取某一个幻灯片的id:
slides.index(slide1)# slide1幻灯片对象 
  • 删除某一页幻灯片:
slide_list = list(ppt.slides._sldIdLst)#转换成一个列表 remove_slide_id = slide_list[i] #i想要删除的幻灯片id ppt.slides._slidIdLst.remove(remove_slide_id) # 删除幻灯片 

PPT形状操作

  • PPTX中形状汇总:
  1. 基础自动形状:PPT「插入 - 形状」里全部图形都属于此类;
  2. 文本框;
  3. 图片;
  4. 图标;
  5. 表格;
  6. 组合形状:多个形状合并成一组;
  7. 占位符;
以上形状,解释下占位符,在新建幻灯片时候要设置layouts
slides.add_slide(layouts[6]) #空白幻灯片  
slides.add_slide(layouts[0]) #标题幻灯片 
如果母版样式是layouts[0],幻灯片页面中会显示两个框【单机此处添加标题】和【单机此处添加副标题】,这两个框就是占位符。
from pptx import Presentationppt = Presentation("E:/PPT/pptTemplate.pptx")slides = ppt.slideslayouts = ppt.slide_layoutsslide1 = slides.add_slide(layouts[0])print(slide1.shapes)for shape in slide1.shapes:    print(shape)ppt.save("E:/PPT/pptTemplate.pptx")
上面代码运行后输出如下:
<pptx.shapes.shapetree.SlideShapes object at 0x00000213CD162E40><pptx.shapes.placeholder.SlidePlaceholder object at 0x00000213CD1630E0><pptx.shapes.placeholder.SlidePlaceholder object at 0x00000213CD14DD10>
  • 添加形状
slide1.shapes.add_shape(autoshape_type_id: MSO_SHAPE, left: Length, top: Length, width: Length, height: Length)
  • 需要五个参数
  1. 形状id:需要插入那种形状。
  2. left:距离左上角水平距离
  3. top:距离左上角垂直距离
  4. width:形状宽度
  5. height:形状高度
五个参数中,2-5属于形状位置和形状大小参数,容易理解和设置;
形状id怎么确认呢?比如想要插入一个矩形,矩形的id是多少?可以先在PPT中手动插入想要的形状,然后使用下面代码输出:
插入自己想要的形状:
from pptx import Presentationppt = Presentation("E:/PPT/pptTemplate.pptx")slides = ppt.slidesslide = slides[0] shapes = slide.shapesfor shape in slide.shapes:    print(shape.auto_shape_type.value)ppt.save("E:/PPT/pptTemplate.pptx")#执行代码后输入上面图片3个形状id#1 RECTANGLE#5 ROUNDED_RECTANGLE#7 ISOSCELES_TRIANGLE
获取id后,我们可以插入一个形状:
from pptx import Presentationfrom pptx.util import Cmfrom pptx.enum.shapes import MSO_AUTO_SHAPE_TYPEfrom pptx.enum.shapes import MSO_SHAPEppt = Presentation("E:/PPT/pptTemplate.pptx")slides = ppt.slideslayouts = ppt.slide_layoutsslide = slides.add_slide(layouts[0])shape = slide.shapes.add_shape(1,Cm(5), Cm(3), Cm(6), Cm(8))slide = slides.add_slide(layouts[0])shape = slide.shapes.add_shape(5,Cm(5), Cm(3), Cm(6), Cm(8))slide = slides.add_slide(layouts[0])shape = slide.shapes.add_shape(7,Cm(5), Cm(3), Cm(6), Cm(8))ppt.save("E:/PPT/pptTemplate.pptx")
  • 形状属性修改
1.填充背景色:
fill = shape.fillfill.solid()fill.fore_color.rgb = RGBColor(180, 180, 180)    # RGB颜色fill.fore_color.brightness = 0.1               # 亮度(-1~1)fill.transparency = 0.3 # 透明度 0不透明,1完全透明
2.线框修改
line = shape.lineline.color.rgb = RGBColor(0, 0, 0)line.color.brightness = 0line.width = Cm(0.1)line.dash_style = MSO_LINE_DASH_STYLE.DASH_DOT  # DASH / DOT / SOLIDline.color.transparency = 1.0shape.line.transparency = 0.9
3.形状大小和位置修改
# 左上角坐标shape.left = Cm(1)shape.top = Cm(1)# 宽高shape.width = Cm(3)shape.height = Cm(2)
4.形状内部添加文字
tf = shape.text_frametf.text = "测试文字"tf.word_wrap = Truetf.vertical_anchor = MSO_ANCHOR.MIDDLE# 设置文字颜色==========for para in tf.paragraphs:    for run in para.runs:        run.font.color.rgb = RGBColor(0, 0, 0)        run.font.size = Pt(14)    para.alignment = PP_ALIGN.CENTER  # 文字水平居中    
篇幅原因后续再更新 使用Python在PPT中插入图片,文本框,表格等内容:

往期文章

HyperView 基于Python二次开发-常用功能合集

HyperView 基于Tcl 二次开发常用功能合集

ANSA 二次开发 创建螺栓连接

Ansa 二次开发,创建特定set

CAE仿真 网格评价中的雅可比为什么是0-1?参数单元是什么

CAE仿真 孔边网格必须分布偶数节点的一种解释

Animator二次开发实现云图显示材料屈服和归一化应力

HyperMesh Python二次开发自动替换Component名中的特定字符

HyperMesh Python 二次开发 提高脚本运行速度的方法

最新文章

随机文章