1、python-pptx模块简介

使用python操作ppt,需要使用的模块就是python-pptx,下面来对该模块做一个简单的介绍.

这里提前做一个说明:PythonPPT,最好是我们提前设计好自己的一套样式,然后利用进行python进行内容的获取和填充(最主要的功能!),最好是不用使用python代码操作ppt的格式,格式的修改肯定不如我们直接在ppt中修改方便.可以创建、修改ppt(.pptx)文件

需要单独安装,不包含在Python标准模块里

2、模块的安装与导入

1)模块的安装

“Windows用户命令行下输入”

PIP安装python-pptx

“mac用户命令行下输入”

PIP 3安装python-pptx

2)模块的导入

这里有一点需要注意的是:安装的库是python-pptx,但是导入的时候却有点不同.

进口pptx

3、python读取ppt文档中的内容

1)PPT的结构说明

在使用python操作ppt之前,首先应该清楚ppt的结构,这个对于之后代码的编写很有帮助.

2)获取滑动

从…pptx进口展示

PRS=演示文稿(“统计学习方法PPT.pptx”)

为滑梯在……里面幻灯片:

打印(幻灯片)

结果如下:

3)获取形状形状

进口pptx

从…pptx进口展示

PRS=演示文稿(“统计学习方法PPT.pptx”)

为滑梯在……里面幻灯片:

为形形在……里面滑块形状:

打印(形状)

"""

注意:这里得到的Shape对象,并不能看出什么,接着往下看.

"""

结果如下:

4)判断每个形状中是否存在文字Shape.had_text_framework:是否有文字

Shape.text_framework:获取文字框

进口pptx

从…pptx进口展示

PRS=演示文稿(“统计学习方法PPT.pptx”)

为滑梯在……里面幻灯片:

为形形在……里面滑块形状:

如果Shape.had_text_framework:

文本帧=shape.text_framework

打印(Text_Fra.text)

结果如下:

5)获取某一页幻灯片中的内容

进口pptx

从…pptx进口展示

PRS=演示文稿(“统计学习方法PPT.pptx”)

为我,滑梯在……里面列举(幻灯片):

如果I=5:

为形形在……里面滑块形状:

如果Shape.had_text_framework:

文本帧=shape.text_framework

打印(Text_Fra.text)

结果如下:

6)获取形状中的某个段落

进口pptx

从…pptx进口展示

PRS=演示文稿(“统计学习方法PPT.pptx”)

为我,滑梯在……里面列举(幻灯片):

如果I=5:

为形形在……里面滑块形状:

如果Shape.had_text_framework:

文本帧=shape.text_framework

为段落在……里面案文框架.段落:

印刷(案文)

"""

注意:该方法和上述4)中的方法一摸一样.上述方法是直接获取Shpae中的文字内容;

下面这个更灵活,先获取每个形状,然后在获取每个形状中的段落;

下面方式更好:因为我们可以针对段,写一个判断条件,只获取第几个段;

"""

结果如下:

4、利用python像ppt中写入内容

1)幻灯片模板及占位符的概念

2)怎么自定义母版?

3)什么是版式?

这个概念在下面的效果中,会得以体现.其中_表示获取的是第二个版式,以此类推下去[]传入0表示获取的是第一个版式,传入1表示获取的是第二个版式,以此类推下去.

4)添加幻灯片和内容

这里就需要使用上述的自定义母版.因为毕竟是使用python操作PPT,我们可以定义好自己想要展示的PPT母版,然后借助代码完成PPT的内容写入操作.

1占位符id的确认

进口pptx

从…pptx进口展示

PRS=演示文稿(“空白.pptx”)

表示的是ppt中不同的版式

幻灯片=幻灯片。添加_幻灯片(prs.幻灯片_布局[0])

为形形在……里面幻灯片.占位符:

Pff=shape.占位符格式

打印(f“{phf.idx}--{shape.name}--{phf.type}”)

Shape.text=f“{phf.idx}--{shape.name}--{phf.type}”

#注意:做完这个操作,一定要记得保存一下!

保存(“电子奖状模板.pptx”)

"""

上述打印结果如下:

0--标题1--标题(1)这个表示标题占位符,id为0

图片占位符2-图片(18)这个表示图片占位符,id为13

14-文本占位符3-主体(2)这个表示正文内容占位符,id为14

15--文本占位符4--主体(2)这个表示正文内容占位符,id为15

我们一定要先知道每个空格的占位符id,才可以进行下面内容的填充.

"""

效果如下:

2 PPT内容的填写

进口pptx

从…pptx进口展示

PRS=演示文稿(“空白.pptx”)

幻灯片=幻灯片。添加_幻灯片(prs.幻灯片_布局[0])

名称=幻灯片.占位符[14]

为什么=幻灯片.占位符[15]

Name.text=“黄同学”

Why.text=“学习太积极”

保存(“内容填充.pptx”)

效果如下:

5)添加段落

1占位符id的确认

进口pptx

从…pptx进口展示

PRS=演示(“Finall.pptx”)

幻灯片=幻灯片。添加_幻灯片(prs.幻灯片_布局[0])

为形形在……里面幻灯片.占位符:

Pff=shape.占位符格式

打印(f“{phf.idx}--{shape.name}--{phf.type}”)

Shape.text=f“{phf.idx}--{shape.name}--{phf.type}”

Print(“---”)

幻灯片=幻灯片。添加_幻灯片[1]

为形形在……里面幻灯片.占位符:

Pff=shape.占位符格式

打印(f“{phf.idx}--{shape.name}--{phf.type}”)

Shape.text=f“{phf.idx}--{shape.name}--{phf.type}”

保存(“哈哈.pptx”)

效果如下:

2段落的添加

进口pptx

从…pptx进口展示

PRS=演示(“Finall.pptx”)

幻灯片=幻灯片。添加_幻灯片(prs.幻灯片_布局[0])

名称=幻灯片.占位符[14]

为什么=幻灯片.占位符[15]

Name.text=“黄同学”

Why.text=“学习太积极”

# --------------------------------------------------- #

Prs 1=演示(“finall.pptx”)

幻灯片1=prs.幻灯片.Add_幻灯片[1]

形状=滑块

Title_Shape=shapes.title#这句代码可以改为Title_Shape=shapes.占位符[0]

体形=形状.占位符[1]

Title_shape.text=“这是一个标题”

Tf=身体形状.文本框架

#这句代码就是给Body占位符添加内容!

Tf.text=“带圆点的符号1”

P=tf.add_段()

#这个代码表示在原来的基础上,添加第一个段落!

P.text=“带圆点的符号2”

P=tf.add_段()

#这个代码表示在原来的基础上,添加第二个段落!

P.text=“带圆点的符号3”

保存(“嘿嘿.pptx”)

效果如下:

3给段落设定层级关系

进口pptx

从…pptx进口展示

PRS=演示(“Finall.pptx”)

幻灯片=幻灯片。添加_幻灯片(prs.幻灯片_布局[0])

名称=幻灯片.占位符[14]

为什么=幻灯片.占位符[15]

Name.text=“黄同学”

Why.text=“学习太积极”

# --------------------------------------------------- #

Prs 1=演示(“finall.pptx”)

幻灯片1=prs.幻灯片.Add_幻灯片[1]

形状=滑块

Title_Shape=shapes.title#这句代码可以改为Title_Shape=shapes.占位符[0]

体形=形状.占位符[1]

Title_shape.text=“这是一个标题”

Tf=身体形状.文本框架

Tf.text=“带圆点的符号1”

P=tf.add_段()

P.text=“带圆点的符号2”

#原始内容的层级相当于是0,因此这个段落我设置为层级1,下面的段落设置为层级2

P级=1

P=tf.add_段()

P.text=“带圆点的符号3”

P级=2

保存(“嘻嘻.pptx”)

效果如下:

4添加一个文本框滑块.shapes.add_textbox(左、顶、宽、高)

从…pptx进口展示

从…Pptx.util进口厘米,铂

PRS=列报()

#使用第一个版式

黑色幻灯片布局=PRS.幻灯片布局[0]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

Tf.text=“这是一段文本框里面的文字”

P=tf.add_段()

P.text=“这是第二段文字,加粗,字号40”

P.font.粗体=千真万确

P.font.size=Pt(40)

保存(“添加一个文本框0.pptx”)

效果如下:

5添加一个图片幻灯片.shapes.add_画面(图片路径,距离左边,距离顶端,宽度,高度)

第一种展示:

从…pptx进口展示

从…Pptx.util进口厘米

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶部=厘米(3)

PIC=幻灯片.shapes.add_画面(“孙悟空.png”,左,顶)

保存(“添加图片1.pptx”)

效果如下:

第二种展示:

从…pptx进口展示

从…Pptx.util进口厘米

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶部=厘米(3)

高度=厘米(5.5)

PIC=幻灯片.shapes.add_画面(“孙悟空.png”,左,顶,高=高)

保存(“添加图片2.pptx”)

效果如下:

6添加表格Shapes.add_table(行、科尔、左、顶、宽、高)

从…pptx进口展示

从…Pptx.util进口厘米,铂

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

形状=滑动。

行,科尔=5,3

左=顶部=厘米(5)

宽度=厘米(18)

高度=厘米(3)

TABLE=shapes.add_table(行、科尔、左、顶、宽、高)。

表格[0].宽度=厘米(6)

表格[1].宽度=厘米(2)

表格[2].宽度=厘米(2)

表.行[0].高=厘米(2)

数据=[

[“姓名”,“性别”,“成绩”],

[“张三”,“男”,96],

[“李四”,“女”,87],

[“王五”,“女”,90],

[“赵六”,“男”,78]

]

为划在……里面范围(行):

为科勒在……里面范围(中校):

Text=str(data[row][coll])

保存(“插入表格.pptx”)

结果如下:

5、PPT文档内容样式批量调整

1)文本框位置的调整

上面我们已经知道怎么添加文本框,现在我们需要做的就是,怎么调整文本框的位置.

从…pptx进口展示

从…Pptx.util进口厘米,铂

从…Pptx.enum.text进口MSO_锚,MSO_自动尺寸

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

Tf.text=“这是一段文本框里面的文字”

# ----------------------------------------- #

边缘底部=cm(0.1)#下边距

页边距左=0#下边距

#一定要导入MSO_锚这个库

垂直锚=MSO_ANCHOR.BOTTOM#对齐文本方式:底端对齐

Tf.word_WORE=千真万确#框中的文字自动换行

保存(“文本框样式的调整.pptx”)

结果如下:

2)文本框背景颜色调整

从…pptx进口展示

从…Pptx.util进口厘米,铂

从…Pptx.enum.text进口MSO_锚,MSO_自动尺寸

从…Pptx.dml.color进口RGB颜色

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

Tf.text=“这是一段文本框里面的文字”

# -------------------------------------- #

边缘底部=cm(0.1)#下边距

页边距左=0#下边距

垂直锚=MSO_ANCHOR.BOTTOM

Tf.word_WORE=千真万确#框中的文字自动换行

# -------------------------------------- #

填充=文本框。

填充.固体()

#使用之前一定要导入RGB彩色这个库

填色(247,150,70)

保存(“文本框背景色的调整.pptx”)

结果如下:

3)文本框边框样式调整

从…pptx进口展示

从…Pptx.util进口厘米,铂

从…Pptx.enum.text进口MSO_锚,MSO_自动尺寸

从…Pptx.dml.color进口RGB颜色

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

Tf.text=“这是一段文本框里面的文字”

# -------------------------------------- #

边缘底部=cm(0.1)#下边距

页边距左=0#下边距

垂直锚=MSO_ANCHOR.BOTTOM

Tf.word_WORE=千真万确#框中的文字自动换行

# -------------------------------------- #

填充=文本框。

填充.固体()

#使用之前一定要导入RGB彩色这个库

填色(247,150,70)

# -------------------------------------- #

Line=text_box.line

Line.chro.rgb=RGBColor(255,0,0)

线宽=厘米(0.3)

保存(“文本框边框样式调整.pptx”)

结果如下:

4)段落对其调整

从…pptx进口展示

从…Pptx.enum.text进口PP对齐

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

# ---------------------------- #

P=tf.add_段()

P.text=“这是第二段文字”

对齐=PP_ALIGN.LEFT

保存(“段落对其调整.pptx”)

当然这里还有一些其他样式的调整,和Word很类似,就不一一叙述了.

5)字体样式调整

代码如下:

从…pptx进口展示

从…Pptx.util进口厘米,铂

从…Pptx.enum.text进口MSO_锚,MSO_自动尺寸

从…Pptx.dml.color进口RGB颜色

从…Pptx.enum.text进口PP对齐

PRS=列报()

#使用第七个版式

黑色幻灯片布局=PRS.幻灯片布局[6]

幻灯片=幻灯片。添加幻灯片(黑色幻灯片布局)

左=顶=宽=高=厘米(3)

文本框=幻灯片.shapes.add_textbox(左、顶、宽、高)

TF=Text_box.Text_Frame

# ---------------------------- #

P=tf.add_段()

P.text=“这是第二段文字”

对齐=PP_ALIGN.LEFT

# ------------------------------------- #

P.font.粗体=千真万确

P.font.name=“宋体”

Rgb=RGBColor(247,150,70)

P.font.size=Pt(30)

保存(“字体样式调整.pptx”)

python控制ppt翻页_详解Python操作PPT的各种骚操作!相关推荐

  1. 用于生成随机数的python标准库模块是_详解Python基础random模块随机数的生成

    详解Python基础random模块随机数的生成 来源:中文源码网    浏览: 次    日期:2019年11月5日 [下载文档:  详解Python基础random模块随机数的生成.txt ] ( ...

  2. python可以播放音乐吗_详解python播放音频的三种方法

    第一种 使用pygame模块 pygame.mixer.init() pygame.mixer.music.load(self.wav_file) pygame.mixer.music.set_vol ...

  3. python命令提示符窗口在哪里_详解python命令提示符窗口下如何运行python脚本

    以arcgispro的python脚本为例在arcgispro自带的python窗口下运行python脚本 需求: 将arcgispro的.aprx项目包中gdb的数据源路径更换为sde数据源路径. ...

  4. python中pandas安装视频教程_详解Python中pandas的安装操作说明(傻瓜版)

    很多人来问我pandas的安装(python数据分析里面的必修课) 步骤如下: 安装python的时候,把路径加到系统里,这样,随时可以用pip 路径添加方法: 查找路径: 路径1: 2.例如: 即: ...

  5. python从random生成列表_详解Python利用random生成一个列表内的随机数

    详解Python利用random生成一个列表内的随机数 首先,需要导入random模块: import random 随机取1-33之间的1个随机数,可能重复: random.choice(range ...

  6. python策略模式包含角色_详解Python设计模式之策略模式

    虽然设计模式与语言无关,但这并不意味着每一个模式都能在每一门语言中使用.<设计模式:可复用面向对象软件的基础>一书中有 23 个模式,其中有 16 个在动态语言中"不见了,或者简 ...

  7. [转载] python中for语句用法_详解Python中for循环的使用_python

    参考链接: 在Python中将else条件语句与for循环一起使用 这篇文章主要介绍了Python中for循环的使用,来自于IBM官方网站技术文档,需要的朋友可以参考下 for 循环 本系列前面 &q ...

  8. python函数的使用场景_详解python中strip函数的使用场景

    python strip()函数 介绍,需要的朋友可以参考一下 函数原型 声明:s为字符串,rm为要删除的字符序列 s.strip(rm) 删除s字符串中开头.结尾处,位于 rm删除序列的字符 s.l ...

  9. python 线程安全的数据类型_详解python多线程、锁、event事件机制的简单使用

    详解python多线程.锁.event事件机制的简单使用 发布时间:2020-09-25 02:04:12 来源:脚本之家 阅读:117 作者:君惜 线程和进程 1.线程共享创建它的进程的地址空间,进 ...

最新文章

  1. Linux中的帮助命令
  2. VSCode + Latex 配置
  3. java正则表达式的基本语法以及不同环境的表单验证
  4. VTK:图表之VisualizeDirectedGraph
  5. Asp.net mvc中使用配置Unity
  6. 为什么程序要从0开始计数
  7. Hive 排序入门--order by与sort by
  8. user-agent概括
  9. jieba 同义词_jieba分词详解
  10. php写超级简单的登陆注册页面(适用期末作业至少要求带有数据库的)
  11. element el-table表格数据合并
  12. 网易云音乐修改名字怎么老是服务器错误,网易云音乐为什么改了名字?网抑云是怎么回事...
  13. eclipse 使用 git合并develop分支到master分支步骤
  14. 10款免费原型设计工具,产品设计得力助手
  15. 51单片机仿真例程-开关控制
  16. 深入理解Camera基础知识点
  17. css连接html的方式
  18. 使用JDBC连接MySQL数据库
  19. 1076: [SCOI2008]奖励关
  20. 腾讯云服务器标准型SA1实例配置性能使用场景及注意事项分析

热门文章

  1. 心流状态---人们做事时内心的一种状态
  2. 海康威视2019校招
  3. 内网穿透软件对比——cpolar : 花生壳(中)
  4. 高级端点保护 (AEP) 简介
  5. Unity3D教程:触发器实现简单的场景跳转
  6. Java、JSP反垃圾邮件管理系统
  7. 核磁谱图分析步骤_测试干货|核磁共振好基友MestReNova—手把手教你做出一张核磁谱图...
  8. Windows 下编译 EXE 文件时把一个外部 txt 文件编译到 EXE 里面
  9. Domain Adaptation and Adaptive Information Fusion for Object Detection on Foggy Days
  10. 手游开发-客户端那些事1