游戏电视苹果数码历史美丽
投稿投诉
美丽时装
彩妆资讯
历史明星
乐活安卓
数码常识
驾车健康
苹果问答
网络发型
电视车载
室内电影
游戏科学
音乐整形

python自动化办公之python操作PPT

  1、pythonpptx模块简介
  使用python操作PPT,需要使用的模块就是pythonpptx,下面来对该模块做一个简单的介绍。这里提前做一个说明:python操作PPT,最好是我们提前设计好自己的一套样式,然后利用进行python进行内容的获取和填充(最主要的功能!),最好是不用使用python代码操作PPT的格式,格式的修改肯定不如我们直接在PPT中修改方便。
  2、模块的安装与导入
  1)模块的安装Windows用户命令行下输入pipinstallpythonpptxMac用户命令行下输入pip3installpythonpptx
  2)模块的导入
  这里有一点需要注意的是:安装的库是pythonpptx,但是导入的时候却有点不同。importpptx
  3、python读取PPT文档中的内容
  1)PPT的结构说明
  在使用python操作PPT之前,首先应该清楚PPT的结构,这个对于之后代码的编写很有帮助
  2)获取SlidefrompptximportPresentationprsPresentation(统计学习方法PPT。pptx)forslideinprs。slides:print(slide)
  结果如下:
  3)获取Shape形状importpptxfrompptximportPresentationprsPresentation(统计学习方法PPT。pptx)forslideinprs。slides:forshapeinslide。shapes:print(shape)注意:这里得到的Shape对象,并不能看出什么,接着往下看。
  结果如下:
  4)判断每个Shape中是否存在文字shape。hastextframe:是否有文字shape。textframe:获取文字框importpptxfrompptximportPresentationprsPresentation(统计学习方法PPT。pptx)forslideinprs。slides:forshapeinslide。shapes:ifshape。hastextframe:textframeshape。textframeprint(textframe。text)
  结果如下:
  5)获取某一页Slide中的内容importpptxfrompptximportPresentationprsPresentation(统计学习方法PPT。pptx)fori,slideinenumerate(prs。slides):ifi5:forshapeinslide。shapes:ifshape。hastextframe:textframeshape。textframeprint(textframe。text)
  结果如下:
  6)获取Shape中的某个ParagraphimportpptxfrompptximportPresentationprsPresentation(统计学习方法PPT。pptx)fori,slideinenumerate(prs。slides):ifi5:forshapeinslide。shapes:ifshape。hastextframe:textframeshape。textframeforparagraphintextframe。paragraphs:print(paragraph。text)注意:该方法和上述4)中的方法一摸一样。上述方法是直接获取Shpae中的文字内容;下面这个更灵活,先获取每个Shape,然后在获取每个Shape中的paragraph;下面方式更好:因为我们可以针对paragraph,写一个判断条件,只获取第几个paragraph;
  结果如下:
  4、利用python像PPT中写入内容
  1)幻灯片模板及占位符的概念
  3)什么是版式?
  这个概念在下面的效果中,会得以体现。其中prs。slidelayouts〔〕传入0表示获取的是第一个版式,传入1表示获取的是第二个版式,以此类推下去。
  4)添加Slide和内容
  这里就需要使用上述的自定义母版。因为毕竟是使用python操作PPT,我们可以定义好自己想要展示的PPT母版,然后借助代码完成PPT的内容写入操作。
  占位符id的确认importpptxfrompptximportPresentationprsPresentation(空白。pptx)prs。slidelayouts〔〕表示的是ppt中不同的版式slideprs。slides。addslide(prs。slidelayouts〔0〕)forshapeinslide。placeholders:phfshape。placeholderformatprint(f{phf。idx}{shape。name}{phf。type})shape。textf{phf。idx}{shape。name}{phf。type}注意:做完这个操作,一定要记得保存一下!prs。save(电子奖状模板。pptx)上述打印结果如下:0Title1TITLE(1)这个表示标题占位符,id为013PicturePlaceholder2PICTURE(18)这个表示图片占位符,id为1314TextPlaceholder3BODY(2)这个表示正文内容占位符,id为1415TextPlaceholder4BODY(2)这个表示正文内容占位符,id为15我们一定要先知道每个空格的占位符id,才可以进行下面内容的填充。
  效果如下:
  PPT内容的填写importpptxfrompptximportPresentationprsPresentation(空白。pptx)slideprs。slides。addslide(prs。slidelayouts〔0〕)nameslide。placeholders〔14〕whyslide。placeholders〔15〕name。text黄同学why。text学习太积极prs。save(内容填充。pptx)
  效果如下:
  5)添加段落
  占位符id的确认importpptxfrompptximportPresentationprsPresentation(finall。pptx)slideprs。slides。addslide(prs。slidelayouts〔0〕)forshapeinslide。placeholders:phfshape。placeholderformatprint(f{phf。idx}{shape。name}{phf。type})shape。textf{phf。idx}{shape。name}{phf。type}print()slideprs。slides。addslide(prs。slidelayouts〔1〕)forshapeinslide。placeholders:phfshape。placeholderformatprint(f{phf。idx}{shape。name}{phf。type})shape。textf{phf。idx}{shape。name}{phf。type}prs。save(哈哈。pptx)
  效果如下:
  段落的添加importpptxfrompptximportPresentationprsPresentation(finall。pptx)slideprs。slides。addslide(prs。slidelayouts〔0〕)nameslide。placeholders〔14〕whyslide。placeholders〔15〕name。text黄同学why。text学习太积极prs1Presentation(finall。pptx)slide1prs。slides。addslide(prs。slidelayouts〔1〕)shapesslide1。shapestitleshapeshapes。title这句代码可以改为titleshapeshapes。placeholders〔0〕bodyshapeshapes。placeholders〔1〕titleshape。text这是一个标题tfbodyshape。textframe这句代码就是给body占位符添加内容!tf。text带圆点的符号1ptf。addparagraph()这个代码表示在原来的基础上,添加第一个段落!p。text带圆点的符号2ptf。addparagraph()这个代码表示在原来的基础上,添加第二个段落!p。text带圆点的符号3prs。save(嘿嘿。pptx)
  效果如下:
  给段落设定层级关系importpptxfrompptximportPresentationprsPresentation(finall。pptx)slideprs。slides。addslide(prs。slidelayouts〔0〕)nameslide。placeholders〔14〕whyslide。placeholders〔15〕name。text黄同学why。text学习太积极prs1Presentation(finall。pptx)slide1prs。slides。addslide(prs。slidelayouts〔1〕)shapesslide1。shapestitleshapeshapes。title这句代码可以改为titleshapeshapes。placeholders〔0〕bodyshapeshapes。placeholders〔1〕titleshape。text这是一个标题tfbodyshape。textframetf。text带圆点的符号1ptf。addparagraph()p。text带圆点的符号2原始内容的层级相当于是0,因此这个段落我设置为层级1,下面的段落设置为层级2p。level1ptf。addparagraph()p。text带圆点的符号3p。level2prs。save(嘻嘻。pptx)
  效果如下:
  添加一个文本框slide。shapes。addtextbox(left,top,width,height)frompptximportPresentationfrompptx。utilimportCm,PtprsPresentation()使用第一个版式blackslidelayoutprs。slidelayouts〔0〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframetf。text这是一段文本框里面的文字ptf。addparagraph()p。text这是第二段文字,加粗,字号40p。font。boldTruep。font。sizePt(40)prs。save(添加一个文本框0。pptx)
  效果如下:
  添加一个图片slide。shapes。addpicture(图片路径,距离左边,距离顶端,宽度,高度)
  第一种展示:frompptximportPresentationfrompptx。utilimportCmprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopCm(3)picslide。shapes。addpicture(孙悟空。png,left,top)prs。save(添加图片1。pptx)
  效果如下:
  第二种展示:frompptximportPresentationfrompptx。utilimportCmprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopCm(3)heightCm(5。5)picslide。shapes。addpicture(孙悟空。png,left,top,heightheight)prs。save(添加图片2。pptx)
  效果如下:
  添加表格shapes。addtable(rows,cols,left,top,width,height)frompptximportPresentationfrompptx。utilimportCm,PtprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)shapesslide。shapesrows,cols5,3lefttopCm(5)widthCm(18)heightCm(3)tableshapes。addtable(rows,cols,left,top,width,height)。tabletable。columns〔0〕。widthCm(6)table。columns〔1〕。widthCm(2)table。columns〔2〕。widthCm(2)table。rows〔0〕。heightCm(2)data〔〔姓名,性别,成绩〕,〔张三,男,96〕,〔李四,女,87〕,〔王五,女,90〕,〔赵六,男,78〕〕forrowinrange(rows):forcolinrange(cols):table。cell(row,col)。textstr(data〔row〕〔col〕)prs。save(插入表格。pptx)
  结果如下:
  5、PPT文档内容样式批量调整
  1)文本框位置的调整
  上面我们已经知道怎么添加文本框,现在我们需要做的就是,怎么调整文本框的位置。frompptximportPresentationfrompptx。utilimportCm,Ptfrompptx。enum。textimportMSOANCHOR,MSOAUTOSIZEprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframetf。text这是一段文本框里面的文字tf。marginbottomCm(0。1)下边距tf。marginleft0下边距一定要导入MSOANCHOR这个库tf。verticalanchorMSOANCHOR。BOTTOM对齐文本方式:底端对齐tf。wordwrapTrue框中的文字自动换行prs。save(文本框样式的调整。pptx)
  结果如下:
  2)文本框背景颜色调整frompptximportPresentationfrompptx。utilimportCm,Ptfrompptx。enum。textimportMSOANCHOR,MSOAUTOSIZEfrompptx。dml。colorimportRGBColorprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframetf。text这是一段文本框里面的文字tf。marginbottomCm(0。1)下边距tf。marginleft0下边距tf。verticalanchorMSOANCHOR。BOTTOMtf。wordwrapTrue框中的文字自动换行filltextbox。fillfill。solid()使用之前一定要导入RGBColor这个库fill。forecolor。rgbRGBColor(247,150,70)prs。save(文本框背景色的调整。pptx)
  结果如下:
  3)文本框边框样式调整frompptximportPresentationfrompptx。utilimportCm,Ptfrompptx。enum。textimportMSOANCHOR,MSOAUTOSIZEfrompptx。dml。colorimportRGBColorprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframetf。text这是一段文本框里面的文字tf。marginbottomCm(0。1)下边距tf。marginleft0下边距tf。verticalanchorMSOANCHOR。BOTTOMtf。wordwrapTrue框中的文字自动换行filltextbox。fillfill。solid()使用之前一定要导入RGBColor这个库fill。forecolor。rgbRGBColor(247,150,70)linetextbox。lineline。color。rgbRGBColor(255,0,0)line。widthCm(0。3)prs。save(文本框边框样式调整。pptx)
  结果如下:
  4)段落对其调整frompptximportPresentationfrompptx。enum。textimportPPALIGNprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframeptf。addparagraph()p。text这是第二段文字p。alignmentPPALIGN。LEFTprs。save(段落对其调整。pptx)
  当然这里还有一些其他样式的调整,和word很类似,就不一一叙述了。
  5)字体样式调整
  代码如下:frompptximportPresentationfrompptx。utilimportCm,Ptfrompptx。enum。textimportMSOANCHOR,MSOAUTOSIZEfrompptx。dml。colorimportRGBColorfrompptx。enum。textimportPPALIGNprsPresentation()使用第七个版式blackslidelayoutprs。slidelayouts〔6〕slideprs。slides。addslide(blackslidelayout)lefttopwidthheightCm(3)textboxslide。shapes。addtextbox(left,top,width,height)tftextbox。textframeptf。addparagraph()p。text这是第二段文字p。alignmentPPALIGN。LEFTp。font。boldTruep。font。name宋体p。font。color。rgbRGBColor(247,150,70)p。font。sizePt(30)prs。save(字体样式调整。pptx)
  结果如下:

网红泰捷WEBOX电视盒子不惧120斤成人踩踏,引爆朋友圈!网红泰捷WEBOX电视盒子的火爆,在小编看来有很多原因,但是最能解释它广受欢迎的一个原因,就是完美契合了中高端定位的产品品质、体验了。无论是无广告的视频播放,还是更结实耐用、使……腾讯红魔游戏手机6狠抓住了顶级玩家内心最爽的那个点2021年3月4日,在性能、散热、优化,以及游戏生态方面进行了全面革新的腾讯红魔游戏手机6与腾讯红魔游戏手机6Pro正式亮相,红魔还全球首发了高达18G内存的氘峰透明版。……ProCam免费下载教程这个价值40元的手动相机软件真是太强相信许多用苹果手机的摄友都觉得苹果的相机硬件很不错,但是自带相机功能太少,又没有夜景模式,可玩性太低。今天来详细说说苹果手机上的一款专业摄影软件procam,这款软件在应用商店……人人都能用的扉乐FiliXTIE系列电动牙刷来了扉乐FiliX电动牙刷我的粉丝并不陌生,因为我之前给大家介绍过他们家的Major电动牙刷,是一款能够覆盖80以上人群使用的牙刷,还有20的特殊人群不能使用。这个成绩对于电动牙刷……现代农业生态园区简单的设计规划,仅供参考学习使用。简单介绍现代农业园区基本规划,希望给要上生态园建设的朋友有所帮助。大概介绍现代生态园中基本包含的项目,更多适合生态园项目请广大网友推荐。1、彩虹天堂,按照彩虹颜色种……Win764位系统电脑双显卡如何切换的方法有不少深度技术的小伙伴都应该发现了,现在有许多笔记本都是支持双显卡的了。但是有深度win7系统就会问了,双显卡到底要如何切换呢。今天就由深度小编来告诉你们在笔记本中怎么切换双显……手感与颜值双优的游戏手柄,北通阿修罗3体验Hi大家好,我是三重奏众所周知,游戏手柄一直是主机玩家的最爱,包括我自己在内,也用过多款手柄,诸如PS4、xbox,以及传统PC手柄。整体使用下来,可能最大的区别就在于,……海外情报AudiQ4SportbacketronConcep【海外情报】AudiQ4SportbacketronConcept崭新四环纯电休旅登场!新冠肺炎疫情影响全球汽车业的新产品推出进度,许多国际车展也被迫取消或延期,原本打算……租车试骑扭力猛兽杜卡迪骇客1100S原本要租车行的另外两款杜卡迪,在连续假期间都被租走,剩下Hypermotard1100S,这台我也行,就租下来了,我在租车前有个习惯,会先做功课,说真的,网上关于这台的中文信息……新能源汽车产业的前景怎么样?现在全球应对气候的加速变暖,也都开始注重环保能源产业了,新能源汽车只是新能源领域的一种实现方式,近些年来,世界主要的汽车生产厂家都在把新能源汽车产业作为提高产业竞争力,保持经济……中国移动和中兴通讯联合召开5GAdvanced创新产业峰会10月27日,中国移动和中兴通讯联合召开主题为5G新阶段生长新范式的5GAdvanced创新产业线上峰会,围绕中国移动提出的5GAdvanced行动计划卓越网络、智生智简、低碳……商显蓄势待发,LED交互大屏炙手可热2020年,受疫情影响全球商用显示行业整体出货量大幅下降,但随着下半年国内宏观经济的整体回暖,新消费赛道迅速崛起并高速增长以及智能信息化加速发展等,商用显示需求开始恢复,带来商……
本田版宏光mini,复古灯双色车身液晶后视镜,续航200公里对于我们熟悉的家用新能源小型车,可以说如今国产版本的五菱宏光mini以及奇瑞小蚂蚁等车型都已经成为了标杆,而相比这些车型来说,今天要与大家分享的这台来自本田汽车的家用新能源,纯……清风朗月花正开什么时候播出,清风朗月花正开演员表清风朗月花正开说出来很多人不清楚,可清风朗月花正开电视剧是什么时候播出,很多网友就想去了解一下有关的故事,看清风朗月花正开提早宣传相关海报和预告片,来让观众熟悉剧情,但有的网友……有没有什么学习软件推荐?10款超适合学生使用的学习app,90的同学都在使用!1、我的倒计时(iOSAndroid)学习前先做好个人暑假的时间规划,精确到秒的倒计时,可以设置反复提醒时间,……如果声音有记忆什么时候上映,如果声音有记忆演员表如果声音有记忆说出来很多人不清楚,可如果声音有记忆电视剧是什么时候上映,很多网友就想去了解一下有关的故事,看如果声音有记忆提前公布相关海报和预告,来让观众熟悉剧情,但有的网友就……密室逃生2什么时候在中国上映,密室逃生2演员表密室逃生说出来很多人不清楚,可密室逃生2电影是什么时候在中国上映,很多网友就想去了解一下有关的故事,看密室逃生第二部提早公布相关的海报和预告片,来让观众熟悉剧情,但有的网友就不……淘金什么时候上线,淘金演员表淘金说出来很多人不清楚,可淘金电视剧是什么时候上线,很多网友就想去了解一下有关的故事,看淘金提早公布相关的人物海报和预告片,来让观众能熟悉所要上演大概的剧情,但有的网友就不清楚……对手黄海结局,对手黄海的扮演者对手说出很多人不清楚,可对手黄海发生什么样的结局,很多网友就想去了解一下有关的故事,看对手剧情中把黄海结局做好铺垫,不过初期没有太明显,后期把精彩的效果给展现,但有的网友就不清……对手朱慧结局,对手朱慧扮演者对手说出很多人不清楚,可对手剧中朱慧发生什么样的结局,很多网友就想去了解一下有关的故事,看对手提前把朱慧结局给做好铺垫,本来有情人成为眷属,不过多种原因没在一起,但有的网友就不……风起洛阳百里延为什么被杀,风起洛阳百里延扮演者风起洛阳说出很多人不清楚,可风起洛阳剧中百里延到底是为什么被杀,很多网友就想去了解一下有关的故事,看风起洛阳里面的百里延被杀后,引出众多的问题,过后需要逐步揭秘,但有的网友就不……奇异博士2上映时间,奇异博士2讲的是什么奇异博士说出来很多人不清楚,可奇异博士2电影的上映时间,很多网友就想去了解一下有关的故事,看奇异博士第二部提早发布相关的海报和预告片,来让观众熟悉大概的剧情,但有的网友就不清楚……千元机和旗舰机到底有什么区别?其实没区别只是厂商的智商税?文小伊评科技正所谓一分价钱一分货,千元机和旗舰机的差别区别大了去了,当然不是智商税,尤其是在当下这个手机市场格外透明的时代,想要通过智商税来赚钱的手机厂商早就倒闭了,接下……问天是什么电视剧,问天演员表问天说出来很多人不清楚,可问天到底会是什么样的电视剧,很多网友就想去了解一下有关的故事,看问天给来给观众介绍如何把飞天梦想,经过长年努力的奋斗,才把梦想变成现实,但有的网友就不……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网