对象关系汇总

属性slides
属性slide_layouts
方法save需要
其中一个
方法add_slide需要
得到
属性shapes
属性placeholders
属性title
方法add_textbox需要
得到
属性text_frame
方法add_paragraph
属性text
取其一
属性text需要
相同性质
属性text_framd
方法add_paragraph
属性text需要
属性font
属性bold需要
属性size需要
属性underline需要
PPT文档
演示文档容器
幻灯片格式十一个-类似于列表
文件保存路径.pptx
单个幻灯片模板
幻灯片页面
页面形态对象
占位符多个
占位符单个-标题
左上宽高四个尺寸对象-Inches类实例需要int
文本盒子
文本框:文本盒子的
段落:文本框:文本盒子的
内容str
占位符单个
内容str
文本框对象-占位符的
段落对象-文本框对象-占位符的
内容str
段落字体
布尔值bool
Pt类对象参数int

目标

来一个幻灯片的生成

安装模块

pip install python-pptx

认识三个对象

import pptx# ppt文档对象
ppt = pptx.Presentation()
# 幻灯片容器
slides = ppt.slides
# 获得一个版式
page = ppt.slide_layouts[1]

slide_layouts[1]为带标题和正文框的ppt,slide_layouts[6]为空白页ppt

演示文档容器添加一页

import pptx# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
print(len(slides))
slides.add_slide(layout1)
print(len(slides))

文件的保存

ppt.save('test.pptx')

版式为2时

import pptx# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[2]
# 容器添加一个版式
print(len(slides))
slides.add_slide(layout1)
print(len(slides))ppt.save('test2.pptx')

版式的规律寻找

对着演示来看,一共十一个

我们试试序号七的结构,验证一下猜测

版式七的效果

与猜测相符

获得所有的文本框

版式一有两个占位符

占位符添加内容

import pptx# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容/n可以吗'ppt.save('test1.pptx')

标题是一个占位符

标题占位符的两种对象获取方式

文本框对象与段落对象

占位符对象具有文本框对象

文本框里面可以有多个段落

让正文占位符里有多个文本对象

import pptx
from pptx.util import Pt# ppt文档对象
ppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容'
# 文本框对象(占位符一的)
text_frame = placeholders[1].text_frame
# 段落对象(文本框的)
paragraph = text_frame.add_paragraph()
paragraph2 = text_frame.add_paragraph()
# 给段落对象添加内容
paragraph.text = '第一个段落内容'
paragraph2.text = '第二个段落内容'
#  段落的样式
paragraph.font.bold = True
paragraph2.font.size = Pt(15)
paragraph2.font.underline = Trueppt.save('test1.pptx')

文本框对象的演练

代码

import pptx# ppt文档对象
from pptx.util import Pt, Inchesppt = pptx.Presentation()
# 演示文档容器
slides = ppt.slides
# 获得一个版式
layout1 = ppt.slide_layouts[1]
# 容器添加一个版式
page = slides.add_slide(layout1)
# 获得所有的占位符
placeholders = page.shapes.placeholders
# 给占位符添加内容
placeholders[0].text = '这是标题的位置'
placeholders[1].text = '这是正文的内容'
# 文本框对象(占位符一的)
text_frame = placeholders[1].text_frame
# 段落对象(文本框的)
paragraph = text_frame.add_paragraph()
paragraph2 = text_frame.add_paragraph()
# 给段落对象添加内容
paragraph.text = '第一个段落内容'
paragraph2.text = '第二个段落内容'
#  段落的样式
paragraph.font.bold = True
paragraph2.font.size = Pt(15)
paragraph2.font.underline = True
# 文本框对象
left = Inches(6)  # 左
top = Inches(2)  # 顶
width = Inches(4)  # 宽
height = Inches(4)  # 高
textbox = page.shapes.add_textbox(left,top,width,height)
# 文本框的内容
# textbox.text = "这是文本框的内容这是文本框的内容这是文本框的内容"
# 文本框的段落
para = textbox.text_frame.add_paragraph()
para.text = "文本框的段落内容文本框的段落内容文本框的段落内容文本框的段落内容"ppt.save('test222.pptx')

存在的问题
虽然给文本框设定了一个宽度和高度,但是里面的内容仍然会超出它的边界,这个问题需要解决

办公自动化-ppt的创建实操-各个对象的理解-0223相关推荐

  1. 云原生docker容器创建实操

    创建容器实操 以flame导航主页为例 1.下载(拉取)flame镜像文件 在https://hub.docker.com搜索框中搜索flame 可以看见右侧有docker pull command拉 ...

  2. html实现ppt缩放效果,实操教程:如何快速实现PPT中图片局部放大效果?

    精选君说:有常常有人在后台说,PPT精选君推荐的教程都是理论为主的,或者推荐的好的资源都不提供源文件了,需要说明下: 1.精选君认为理论和实践之间,唯一的差别就是动不动手做. 2.不提供源文件是我真的 ...

  3. 实操代码带你理解CSS中的常用选择器(你值得掌握!)

    在CSS中,我们要给一个元素定义样式,首先得把这个元素选出来,我在网上看了很多文章,再结合老师所讲的精华部分将平时比较常用的选择器整理出来分享给大家,哈哈哈一起学习一起进步! https://blog ...

  4. oracle表分区实操训练

    关于网上oracle表分区介绍的的文档有很多(不过大概看了下基本都是一个模板刻出来的),看完后自己实际操练了下,虽然以前的项目中也用过,但是自己并没有参与弄过,今天就在本机的库上爽了一把. 操练环境: ...

  5. 实操案例:机智云调试APP控制云端虚拟设备

    本文通过<机智云调试APP控制云端虚拟设备>实操案例,快速理解和体验机智云接入服务,完成新手入门. 机智云自助开发平台 机智云自助开发平台提供一套模拟软件开发工具,其中包括虚拟设备和机智云 ...

  6. Python—实操小实验之人机PK游戏(终极版本—应用类与对象的知识点应用)

    Python-实操小实验之人机PK游戏(终极版本-应用类与对象的知识点应用) 人机PK游戏所需要的基础元素如下: ①要有玩家.敌人.生命值.攻击力,还要有计分: ②要可以互相进行攻击,攻击之后生命值要 ...

  7. 3-8 基于SpringBoot连接数据库与配置MyBatis实操 创建表sql

    11                    13-8 基于SpringBoot连接数据库与配置MyBatis实操 springSecurity提供了     现成的基于内存管理的类 shiro则必须自 ...

  8. 昆明计算机ppt培训机构,师友互助实操培训(昆明)ppt课件.ppt

    <师友互助实操培训(昆明)ppt课件.ppt>由会员分享,可在线阅读,更多相关<师友互助实操培训(昆明)ppt课件.ppt(27页珍藏版)>请在人人文库网上搜索. 1.师友互助 ...

  9. 库卡机器人坐标手势_实操:KUKA机器人创建工具坐标数据

    原标题:实操:KUKA机器人创建工具坐标数据 使用机器人示教器设定工具 图8-8 通过一个固定参考点的工具坐标系的测量分为2步:首先确定工具坐标系的TCP点,然后确定工具坐标系的姿态如表8-7所示. ...

最新文章

  1. CS研究笔记-缓存 (转)
  2. Facebook的一些基本操作(网页版)
  3. 初中英语八下单词表(SuperMemo QA文本格式)
  4. oracle 获得月最后一天,oracle获取本月第一天和最后一天及Oracle trunc()函数的用法...
  5. 专门用于微信公众平台的Javascript API
  6. Atitit 理解Monad attilax总结
  7. .NET 3.5 - DLINQ(LINQ to SQL)之面向对象的添加、查询、更新和删除
  8. Spring : Importxxx系列注解
  9. 这些优化 Drupal 网站速度的超简单办法,你忽略了多少?
  10. JavaScript中String的replace函数
  11. linux 软件装哪个目录下,Linux查看软件安装目录及位置 方法
  12. PVE安装Linux提示:error: /vmlinuz has invalid signature.
  13. android测试云模拟器,基于Android模拟器的调研
  14. 智能配电房综合监控系统的探讨
  15. python出入库_基于Python对Excel数据入库的处理
  16. 3D打印行业入行总结
  17. 元转万元单位换算_excel数值单位转换-----元与万元、千元、百元的转换
  18. Linux命令之新增组groupadd
  19. Limbo模拟器的三两事
  20. 443端口是什么,如何启用?

热门文章

  1. ubuntu18.04如何安装mysql
  2. layui进度条:调用、参数设置、动态渲染、数据热更新 (含案例、代码)
  3. 百度地图demo基础组件演示
  4. Smart Slider 3 Pro高级轮播插件绿色版 附200多模版[更新至v3.5.0.5]
  5. 仿码支付全新免签支付系统源码
  6. 让网站变成灰色插件 可以设定特殊时间
  7. 计算机并行处理专业,分布式计算机并行处理技术(论文).doc
  8. win2k 修改时间服务器,Win2K服务器端设置教程 第四节 WWW服务器的设置(上)
  9. 知识付费阅读小程序源码,前端+后台+代理+分销
  10. 超好看的B站首页顶部景深动态特效源码