python自动化办公——读取PPT写入word表格

Python自动化办公——读取PPT内容写入word表格

文章目录

  • Python自动化办公——读取PPT内容写入word表格
    • 一、需求分析
    • 二、导入依赖
    • 三、代码
    • 四、结果及总结

一、需求分析

📖由于我们知识图谱课程需要将课堂小组汇报的PPT总结成word文档,而我觉得一页一页复制PPT中的内容比较麻烦,所以直接安排:读PPT写word

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2tB8MG4b-1687446502476)(D:\文件\知识图谱\streamlit_project\PYTHON自动化办公读PPT.png)]

二、导入依赖

🚗需要操作PPT幻灯片和word文档,所以需要导入docx 和pptx两个包

pip install pptx 
pip install docx 

这里我的docx使用的是0.2.4版本

pptx使用的是0.6.21版本供参考

三、代码

引入os、pptx和docx

import os
from pptx import Presentation
from docx import Document
from docx.shared import Inches

设置PPT文件路径和Word文件路径

ppt_file_path = 'streamlit.pptx'
word_file_path = '问答系统.docx'

创建文档对象

# 创建PPT文档对象
prs = Presentation(ppt_file_path)

# 创建Word文档对象
doc = Document()

在Word文档中添加表格

table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Slide'
hdr_cells[1].text = 'Text'

读取PPT中的每个幻灯片

for i, slide in enumerate(prs.slides):

    # 获取幻灯片中的所有文本内容
    text = ''
    for shape in slide.shapes:
        if not shape.has_text_frame:
            continue
        for paragraph in shape.text_frame.paragraphs:
            for run in paragraph.runs:
                text += run.text

    # 将幻灯片和文本内容写入Word表格中
    row_cells = table.add_row().cells
    row_cells[0].text = f'Slide {i + 1}'
    row_cells[1].text = text

最后保存word

# 将Word文档保存到指定位置
doc.save(word_file_path)

完整代码如下:

import os
from pptx import Presentation
from docx import Document
from docx.shared import Inches

# 设置PPT文件路径和Word文件路径
ppt_file_path = 'streamlit.pptx'
word_file_path = '问答系统.docx'

# 创建PPT文档对象
prs = Presentation(ppt_file_path)

# 创建Word文档对象
doc = Document()

# 在Word文档中添加表格
table = doc.add_table(rows=1, cols=2)
hdr_cells = table.rows[0].cells
hdr_cells[0].text = 'Slide'
hdr_cells[1].text = 'Text'

# 读取PPT中的每个幻灯片
for i, slide in enumerate(prs.slides):

    # 获取幻灯片中的所有文本内容
    text = ''
    for shape in slide.shapes:
        if not shape.has_text_frame:
            continue
        for paragraph in shape.text_frame.paragraphs:
            for run in paragraph.runs:
                text += run.text

    # 将幻灯片和文本内容写入Word表格中
    row_cells = table.add_row().cells
    row_cells[0].text = f'Slide {i + 1}'
    row_cells[1].text = text

# 将Word文档保存到指定位置
doc.save(word_file_path)

四、结果及总结

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iGty8FQr-1687446502477)(C:\Users\Administrator\AppData\Roaming\Typora\typora-user-images\image-20230622230637873.png)]

结果如上图所示,将PPT中的内容提取了出来并写入了word表格。

也可以根据定制化需求自由编写代码,来实现书写的格式。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/32301.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

python爬虫并做可视化分析--前程无忧

一.数据采集 1.采集逻辑 2.数据schema 招聘信息Schema { "岗位名称": "财务会计主管", "薪资":"1.3-2万", "地址": "*******", "经验要求": "5-7年", "公司名": "***…

JavaWeb小记——重定向和内部转发

目录 重定向 原理图 重定向语句 重定向特点 内部转发 原理图 请求转发特点 路径的书写 请求域对象request 特点 请求转发特点 重定向特点 重定向 原理图 重定向语句 response.setStatus(302); response.setHeader("location","http://www.baidu.c…

MS1826 HDMI 多功能视频处理器 4*4矩阵切换器

基本介绍 MS1826 是一款多功能视频处理器,包含 4 路独立 HDMI 音视频输入通道、4 路独立 HDMI 音视频输出通道以及四路独立可配置为输入或者输出的 SPDIF、I2S 音频信号。支持 4 个独立的字 库定制型 OSD;可处理隔行和逐行视频或者图形输入信号&#xff…

【计算机网络】网络安全,HTTP协议,同源策略,cors,jsonp

❤️ Author: 老九 ☕️ 个人博客:老九的CSDN博客 🙏 个人名言:不可控之事 乐观面对 😍 系列专栏: 文章目录 网络安全非对称加密中间人攻击XSSSQL注入CSRF HTTP协议同源策略corsjsonp 网络安全 非对称加密…

推荐好用的AI工具集

AI技术未来已来,我们要拥抱变化 ,笔记试用好用AI工具,也在代码中试用chatGPT 一、工具集 解决任何问题:ChatGPT 写文案:Jasper Al 、Copysmith 生成真人视频:Synthesia、 CogView2 AI AI 解决法律问题…

MySQL面试题--索引概念以及底层

目录 概述 索引的底层数据结构 二叉树 B树 B树 B树与B树对比: 面试回答 大纲 回答 概述 索引(index)是帮助MySQL高效获取数据的数据结构(有序)。 在数据之外,数据库系统还维护着满足特定查找算法的数据结构(B树&#xff0…

springboot 国家公务员招聘网站-计算机毕设 附源码80528

springboot 国家公务员招聘网站 目 录 摘要 1 绪论 1.1研究背景与意义 1.2开发现状 1.3系统开发技术的特色 1.4springboot框架介绍 1.5论文结构与章节安排 2 2国家公务员招聘网站系统分析 2.1 可行性分析 2.2 系统流程分析 2.2.1数据增加流程 2.3.2数据修改流程 2.…

【Solr】体验极速安装solr

目录 前言 安装下载- 方式一:官网下载- 方式二:仓库下载 启动方式 快速使用 关于查询 前言 solr是基于java开发的,所以solr需要用到jdk环境,并且solr需要在tomcat容器中才能运行,所以需要提前配置好jdk和tomcat环境。 安装下载 需要注意的…

springboot集成mybatisPlus

1、添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-jdbc</artifactId></dependency><dependency><groupId>mysql</groupId><artifactId>mysql-connector-jav…

【操作系统笔记】南京大学jyy老师

系列综述&#xff1a; &#x1f49e;目的&#xff1a;本系列是个人整理为了操作系统学习&#xff0c;整理期间苛求每个知识点&#xff0c;平衡理解简易度与深入程度。 &#x1f970;来源&#xff1a;材料主要源于南京大学操作系统jyy老师课程进行的&#xff0c;每个知识点的修正…

如何使用Wu10Man启用或禁用自动更新

使用Wu10Man启用或禁用自动更新 启用自动更新禁用自动更新Windows 10 将在你设置为自动维护时自动检查新的 Windows 更新。默认情况下,Windows 10 将自动下载并安装重要和关键更新。 某些更新不是自动安装的。这包括可选更新和要求你接受新使用条款的更新。当这些更新可用时,…

基于卷积神经网络的高光谱图像分类

文章目录 引言1. 基于光谱特征2. 基于空间特征3. 基于空谱特征3.1 空间特征和光谱特征的融合3.2 基于3D-CNN分类 4. 总结 引言 近年来深度学习的技术在计算机视觉领域中大放异彩&#xff0c;使得对多光谱数据分类的研究迅速发展&#xff0c;结合2D-CNN&#xff0c;3D-CNN&…

让性能腾飞!亚马逊云科技的 Java 云端之旅

在上篇文章中&#xff0c;我们为大家介绍了亚马逊的 Java 生态及丰富的开发工具、框架。本文将分享亚马逊的 Java 架构、迁移途径&#xff0c;并分享一个具体实例&#xff0c;介绍如何使用机器学习来构建 Java 应用和提升 Java 性能。 亚马逊云科技开发者社区为开发者们提供全…

怎么高效的通过爬虫获取数据

导语&#xff1a;在当今数字化时代中&#xff0c;获取数据已成为许多企业和个人的重要需求。在快速获取数据时&#xff0c;通过爬虫技术迅速获取网络数据已成为一项重要的技能和技术。然而&#xff0c;在应用爬虫技术前&#xff0c;需要注意一些重要的问题。本文总结了从数据来…

leetcode1.两数之和

个人主页&#xff1a;平行线也会相交 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 平行线也会相交 原创 收录于专栏【LeetCode】 &#x1f353;希望我们一起努力、成长&#xff0c;共同进步。 题目链接 给定一个整数数组 nums 和一个整数目标值 target&am…

读写锁原理解读

目录 回顾什么是读写锁 t1 w.lock&#xff0c;t2 r.lock t3 r.lock&#xff0c;t4 w.lock t1 w.unlock t2 r.unlock&#xff0c;t3 r.unlock 写锁上锁流程 写锁释放流程 读锁上锁流程 读锁释放流程 回顾什么是读写锁 读写锁是一对互斥锁&#xff0c;分为读锁和写锁。…

《kafka 核心技术与实战》课程学习笔记(八)

无消息丢失配置怎么实现&#xff1f; Kafka 只对“已提交”的消息&#xff08;committed message&#xff09;做有限度的持久化保证。 第一个核心要素是“已提交的消息”。 当 Kafka 的若干个 Broker 成功地接收到一条消息并写入到日志文件后&#xff0c;它们会告诉生产者程序…

知识图谱项目——红色文化之张学良人物知识图谱(Neo4j+vue+flask+mysql实现)

张学良人物简史知识图谱_说明文档 本项目为人工智能专业大三知识图谱课程期末作业。意在完成一个以张学良为背景的红色文化类知识图谱。文末放上本项目的代码地址。 文章目录 张学良人物简史知识图谱_说明文档:rocket:前端:rocket:后端:rocket:中间件:rocket:数据库:rocket:服…

Linux常用命令——free命令

在线Linux命令查询工具 free 显示内存的使用情况 补充说明 free命令可以显示当前系统未使用的和已使用的内存数目&#xff0c;还可以显示被内核使用的内存缓冲区。 语法 free(选项)选项 -b # 以Byte为单位显示内存使用情况&#xff1b; -k # 以KB为单位显示内存使用情况…

【云原生】二进制部署k8s集群(中)搭建node节点

连接上文 在上文已经成功部署了etcd分布式数据库、master01节点&#xff0c; 本文将承接上文的内容&#xff0c;继续部署Kubernetes集群中的 worker node 节点和 CNI 网络插件 1. 部署 Worker Node 组件 1.1 work node 组件部署前需了解的节点注册机制 kubelet 采用 TLS Bo…