ppt里运行python,python操作ppt的模块
一.导言
大家好,今天还是Python办公自动化基础系列,之前我们已经详细讲解过了。
今天基于第三方库pptx,本文将详细讲解如何使用Python操作Office bucket的最后——PPT。
二。装置
Pptx是非标准库,需要在命令行安装pipinstallpython-pptx。
注意,python-pptx是安装的,但实际调用的是pptx。这里和docx模块一样。
第三,预知
1.基本结构
再看ppt结构,会比word复杂很多。当然,这也和ppt高度定制化的扩展性有关。
简单来说,一个PPT文件就是演示文稿,它的基本结构是演示文稿文件-幻灯片-页面-形状shape。形状需要区分,是否包含文字(纯图片等。).
如果是包含文字的形状,可以得到内部的文本框,一个文本框可以看作一个小的word文档,包括段落段落-文本块run。
现在,对办公三件套的结构做一个小总结。
2.模板和占位符
如上图所示,我们可以通过幻灯片母版预设各种布局。以后创建新幻灯片时,我们只需点击布局,一键生成所需的基本格式。
先说占位符占位符。
占位符已经完成了样式设置,包括字体、字号、颜色等。在特定占位符中输入的文本可以直接转换成特定的样式。
3.创建PPT文件的基本思路创建PPT
根据幻灯片母版确定版式。
在不同的占位符中填写不同的内容。
添加附加内容,如图片和表格。
对样式进行更改。
四、Python读PPT
1.从pptximportPresentation打开PPT文件。
#这里是需要打开的文件的路径
file_path=r .
pptx=演示文稿(文件路径)
2.获取幻灯片页面
您可以使用pptx.slides获得一个列表,包括slideinpptx.slides的所有slide对象:
打印(幻灯片)
3.了解形状
只要熟悉Excel、Word这样的多级结构,PPT的结构就很好理解。每个幻灯片页面都有一个或多个形状shapeforslideinpptx,幻灯片:
forshapeinslide.shapes:
打印(形状)
4.获取文本框内容。
要获取文本内容,很容易联系到shape shape中文本的从属结构。从Word中的学习,也可以推断出文本的承载单位是段落段落和文本块游程。
很自然会想到使用以下代码来获取slideinpptx.slides的文本:
forshapeinslide.shapes:
forparagraphinshape.paragraphs:
打印(段落.文本)
或forslideinpptx.slides:
forshapeinslide.shapes:
forparagraphinshape.paragraphs:
for running paragraph . runs:
打印(运行.文本)
但这里就来了一个问题:是不是每种形状都总有一段文字?
从上图可以看出,蓝色椭圆的形状没有文字,中间的大虚线框中有文字。形状中是否有文本取决于它是否包含文本框text_frame。下面是与文本框相关的操作:shape.has_text_frame判断形状中是否有文本框。
获取文本内容
在PPT中,文本框是文本的载体,所以获取文本的代码如下:forslideinpptx.slides:
forshapeinslide.shapes:
ifshape.has_text_frame:
text_frame=shape.text_frame
打印(text_frame.text)
这里,我们需要修正一下之前对PPT结构的理解:
5.获取段落和文本块
每个文本框都可以看作一个小的Word文件,有两个层次的结构:段落和文本块:forslideinpptx.slides:
forshapeinslide.shapes:
ifshape.has_text_frame:
text_frame=shape.text_frame
for paragraphintext _ frame . paragraphs:
for running paragraph . runs:
打印(运行.文本)
5.写PPT
创建一个新的PPT的代码可以和创建Word文件的代码进行对比,在实例化的过程中不给出具体的路径就创建了空白文件。
1.创建幻灯片页面
占位符编号是区分占位符和书写内容的基础。
2.填写占位符。
指定占位符编号以编写特定内容幻灯片。text= .
不及物动词修改PPT样式
1.段落样式修改
可以对比python-docx模块导入段落样式。
这两种方法有许多相似之处:add_run():添加一个新的文本块。line_spacing:段内的行距。游程:段落中的所有文本块。space_after:线段后距离。space_before:段前距离
2.文本样式修改
style方法与Word中使用的方法相同:font.name:字体名称。font.bold:加粗还是不加粗?font.italic:斜体与否?font.color:字体颜色。font.size:字体大小
但有一点不同:在python-pptx中,文本样式方法是基于段落的,即paragraph.font.xxxx,而在python-docx中,文本样式方法是基于文本块的。
写在最后
是对python-pptx模块中操作PPT的常用方法的总结。处理日常办公室工作绝对没有问题。更详细的代码请参考官方文档。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。