python的pptx文档remove_Python之pptx实现添加内容与删除(移动)页操作
问题背景
大量表格数据需要生成指定格式的ppt文件,内容以文字和表格为主,首尾页与内容有固定格式。博主不熟悉VBA操作,希望通过模板用Python完成自动化。
基本思路
使用xlrd模块读取xlsx文件内容
使用pptx模块完成ppt修改
模块版本
本文完成时使用的Python模块版本如下
pip install xlrd==1.2.0 python-pptx==0.6.18
具体实现
数据读取
插入页面
网上有很多关于pptx的参考资料,很快可以上手并新建新的幻灯片页(slide):
from pptx import Presentation
prs = Presentation('template.pptx')
def new_slide(idx):
'Add slide with layout, 0 = title, 1 = content, 2 = ending'
layout = prs.slide_layouts[idx]
slide = prs.slides.add_slide(layout)
return slide
上述代码支持根据幻灯片版式(layout)生成不同的空白页,如模板定义0标题1内容2结尾。具体版式可在ppt菜单【视图】-【幻灯片母版】中进行编辑。
**缺陷:**新建slide会自动添加到末尾页,无法移动。
写入内容
在Office 2007之后的pptx文件本质上是一个结构化的xml压缩包,而xml中的段落决定了每一页的元素的模板、内容、格式、字体、大小、位置等,因此通过搜过xml文件中不同的内容即可快速定位到需要修改的字段。
在ppt中每个元素都抽象为shape,对于表格,我的方案是在模板中做好格式并使用deepcopy复制到新的页面再修改内容。
from copy import deepcopy
slide = new_slide(1) #content slide
slide.shapes.title.text = '本页标题'
el = prs.slides[1].shapes[2].element #table in template
ol = deepcopy(el) #duplicate
slide.shapes._spTree.insert_element_before(ol)
table = slide.shapes[1].table #table in new slide
table.cell(1,1).text_frame.paragraphs[0].runs[0].text = '表格内容'
删除页面
官方issue指出无法移动slide可通过remove+insert间接实现,比较繁琐。 问题简化:尾部批量添加新容页结和尾最页,后删去模板二三页。 【模板开头】【模板内容】【模板结尾】【新内容1】【新内容2】……【新结尾】
def del_slide(index):
slides = list(prs.slides._sldIdLst)
prs.slides._sldIdLst.remove(slides[index])
参考文档
python的pptx文档remove_Python之pptx实现添加内容与删除(移动)页操作相关推荐
- python读取word文档结构图_python根据文章标题内容自动生成摘分享的实例
如何用Python玩转TF-IDF之寻找相似文章并生成摘要 应用1:关键词自动生成 核心思想是对于某个文档中的某个词,计算其在这个文档中的标准化TF值,然后计算这个词在整个语料库中的标准化IDF值.在 ...
- 如何使用Docx4J合并docx及pptx文档
Docx4j docx4j是一个用于处理OOXML(office open xml)文档(如docx.pptx等文档)的库,功能非常强大,其基础部分是开源的,但一些高级功能是需要商业授权,比如文档的合 ...
- Springboot生成Word/EXECL/PPTX文档
目录 一.概述 二.使用介绍 第一种Poi-tl: 1.介绍 2.功能 第二种Poi: 什么是POI 二进制分布 源码分发 一.概述 Word模板引擎:使用Word模板和数据生成对应的Word文档. ...
- python docx 合并文档 图片_Python+pymupdf处理PDF文档案例6则
推荐图书:<Python程序设计(第3版)>,(ISBN:978-7-302-55083-9),清华大学出版社,2020年6月第1次印刷,7月第2次印刷 京东购买链接:https://it ...
- Python实现自动化办公(三):Python对PPT文档的基本操作(python-pptx)
Python对PPT文档的基本操作 文章目录 Python对PPT文档的基本操作 一.pptx模块 1.官方文档 2.安装pptx模块 二.基本函数的使用方法 三.使用案例 1.修改ppt内容 2.写 ...
- python docx 合并文档 图片_Python检查Word文件中包含特定关键字的所有页码
推荐教材:<Python程序设计基础与应用>(ISBN:9787111606178),董付国,机械工业出版社图书详情:配套资源:用书教师可以联系董老师获取教学大纲.课件.源码.教案.考试系 ...
- Python获取docx文档里的批注
注意:该作者博客已迁移至https://buxianshan.xyz 使用Python-docx库可以很方便的处理docx文件(官方文档) 但是有些隐含的信息Python-docx库好像无法读取,比如 ...
- python docx 合并文档 图片_MBT文档模型化生成工具——30倍效率文档撰写工程化方法...
MBT(A model based document builder)文档模型化生成工具用户手册--30倍效率文档撰写工程化方法 1 简介 在软件工程领域,工程文档通常主要包括实施方案.需求分析.软件 ...
- python中的文档字符串(docString)
python中的文档字符串(docString) - 泥土 - 博客园 python中的文档字符串(docString) Posted on 2009-02-19 15:27 泥土 阅读(2122) ...
最新文章
- 【深度学习理论】(4) 权重初始化,Batch Normalization
- MyISAM与InnoDB的索引实现
- bootstrap-动画过渡
- 灵图天行者9 pc版_原神PC预下载现已开启
- 【直播提醒】荷小鱼:K12 在线教育应用的开发实践
- 面试官问你的缺点是什么,该如何回答?
- hdu1501Zipper(记忆化搜索)
- Pedestrian Identification (1) ——前景目标检测
- 分析 Web 资源的访问过程(Servlet 程序访问过程)
- 辗转相除法(欧几里得算法)求解最大公约数、最小公倍数
- 计算器归零按键c语言,计算器有关按键说明大全
- 单片机入门学习十五 STM32单片机学习十二 电容触摸按键
- 为什么有些人拒绝别人的方式是说谎而不是直接说不?
- macOS Monterey 12.1 (21C52) 正式版 ISO、IPSW、PKG 下载
- 如何重新修改VHDX硬盘大小?
- 2021-04-29
- python爬取豆瓣top250信息并存入数据库中 | sqlite3
- 购买太平洋保险公司聚宝盆险发现虚假宣传,没有证据,如何向保监会投诉
- 【运筹学】线性规划 图解法 ( 唯一最优解 | 无穷最优解 | 无界解 | 无可行解 )
- vm安装中标麒麟v7.0
热门文章
- ubuntu linux 环境下的程序打包
- Redis 如何实现附近的人
- Unity3D项目之《坦克大战》
- 方兴东:博客网倒掉是十亿美金的教训
- JS - 13 - 模块化
- 周志明虚拟机最新版,大厂面试必备宝典
- 《连线》杂志:Web已死 Internet永生(全文),互联网营销
- 共创RPA发展生态,2019中国RPA应用与发展论坛在北京成功举办
- SATA协议固态硬盘的S.M.A.R.T详解
- shell学习18:if判断-e,-f,-f,-L,-r,-w,-x,-s,-nt,-ot的意思