Python操作Word和PowerPoint文件

Python在Office上的应用:提升办公效率的全新方式 Microsoft Office是世界上最广泛使用的办公套件,包括Word、Excel和PowerPoint等工具。Python可以通过各种库与这些工具集成,实现自动化任务、数据分析和报告生成。pandas:用于数据处理和分析,特别适合处理Excel数据。openpyxl:用于读取和写入Excel文件,支持.xlsx格式。xlrd和 xlwt:用于读取和写入旧版Excel文件(.xls格式)。:用于创建和修改Word文档(.docx格式)。 阅读详情

在日常工作中,有很多简单重复的劳动其实完全可以交给Python程序,比如根据样板文件(模板文件)批量的生成很多个Word文件或PowerPoint文件。Word是微软公司开发的文字处理程序,相信大家都不陌生,日常办公中很多正式的文档都是用Word进行撰写和编辑的,目前使用的Word文件后缀名一般为.docx。PowerPoint是微软公司开发的演示文稿程序,是微软的Office系列软件中的一员,被商业人士、教师、学生等群体广泛使用,通常也将其称之为“幻灯片”。在Python中,可以使用名为python-docx 的三方库来操作Word,可以使用名为python-pptx的三方库来生成PowerPoint。

操作Word文档

我们可以先通过下面的命令来安装python-docx三方库。

pip install python-docx

按照官方文档的介绍,我们可以使用如下所示的代码来生成一个简单的Word文档。

from docx import Document
from docx.shared import Cm, Pt

from docx.document import Document as Doc

# 创建代表Word文档的Doc对象
document = Document()  # type: Doc
# 添加大标题
document.add_heading('快快乐乐学Python', 0)
# 添加段落
p = document.add_paragraph('Python是一门非常流行的编程语言,它')
run = p.add_run('简单')
run.bold = True
run.font.size = Pt(18)
p.add_run('而且')
run = p.add_run('优雅')
run.font.size = Pt(18)
run.underline = True
p.add_run('。')

# 添加一级标题
document.add_heading('Heading, level 1', level=1)
# 添加带样式的段落
document.add_paragraph('Intense quote', style='Intense Quote')
# 添加无序列表
document.add_paragraph(
    'first item in unordered list', style='List Bullet'
)
document.add_paragraph(
    'second item in ordered list', style='List Bullet'
)
# 添加有序列表
document.add_paragraph(
    'first item in ordered list', style='List Number'
)
document.add_paragraph(
    'second item in ordered list', style='List Number'
)

# 添加图片(注意路径和图片必须要存在)
document.add_picture('guido.jpg', width=Cm(5.2))

# 添加分节符
document.add_section()

records = (
    ('骆昊', '男', '1995-5-5'),
    ('孙美丽', '女', '1992-2-2')
)
# 添加表格
table = document.add_table(rows=1, cols=3)
table.style = 'Dark List'
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '姓名'
hdr_cells[1].text = '性别'
hdr_cells[2].text = '出生日期'
# 为表格添加行
for name, sex, birthday in records:
    row_cells = table.add_row().cells
    row_cells[0].text = name
    row_cells[1].text = sex
    row_cells[2].text = birthday

# 添加分页符
document.add_page_break()

# 保存文档
document.save('demo.docx')

提示:上面代码第7行中的注释# type: Doc是为了在PyCharm中获得代码补全提示,因为如果不清楚对象具体的数据类型,PyCharm无法在后续代码中给出Doc对象的代码补全提示。

执行上面的代码,打开生成的Word文档,效果如下图所示。

  

对于一个已经存在的Word文件,我们可以通过下面的代码去遍历它所有的段落并获取对应的内容。

from docx import Document
from docx.document import Document as Doc

doc = Document('demo.docx')  # type: Doc
for no, p in enumerate(doc.paragraphs):
    print(no, p.text)

提示:使用刚刚生成的demo.docx文档

读取到的内容如下所示。


可以发现,读取的内容并不是期望的,有些格式的内容无法读取。

讲到这里,相信很多读者已经想到了,我们可以把上面的离职证明制作成一个模板文件,把姓名、身份证号、入职和离职日期等信息用占位符代替,这样通过对占位符的替换,就可以根据实际需要写入对应的信息,这样就可以批量的生成Word文档。

按照上面的思路,我们首先编辑一个离职证明的模板文件,如下图所示。

接下来我们读取该文件,将占位符替换为真实信息,就可以生成一个新的Word文档,如下所示。

from docx import Document
from docx.document import Document as Doc

# 将真实信息用字典的方式保存在列表中
employees = [
    {
        'name': '骆昊',
        'id': '100200198011280001',
        'sdate': '2008年3月1日',
        'edate': '2012年2月29日',
        'department': '产品研发',
        'position': '架构师',
        'company': '成都华为技术有限公司'
    },
    {
        'name': '王大锤',
        'id': '510210199012125566',
        'sdate': '2019年1月1日',
        'edate': '2021年4月30日',
        'department': '产品研发',
        'position': 'Python开发工程师',
        'company': '成都谷道科技有限公司'
    },
    {
        'name': '李元芳',
        'id': '2102101995103221599',
        'sdate': '2020年5月10日',
        'edate': '2021年3月5日',
        'department': '产品研发',
        'position': 'Java开发工程师',
        'company': '同城企业管理集团有限公司'
    },
]
# 对列表进行循环遍历,批量生成Word文档
for emp_dict in employees:
    # 读取离职证明模板文件
    doc = Document('离职证明模板.docx')  # type: Doc
    # 循环遍历所有段落寻找占位符
    for p in doc.paragraphs:
        if '{' not in p.text:
            continue
        # 不能直接修改段落内容,否则会丢失样式
        # 所以需要对段落中的元素进行遍历并进行查找替换
        for run in p.runs:
            if '{' not in run.text:
                continue
            # 将占位符换成实际内容
            start, end = run.text.find('{'), run.text.find('}')
            key, place_holder = run.text[start + 1:end], run.text[start:end + 1]
            run.text = run.text.replace(place_holder, emp_dict[key])
    # 每个人对应保存一个Word文档
    doc.save(f'{emp_dict["name"]}离职证明.docx')

执行上面的代码,会在当前路径下生成三个Word文档,如下图所示。

生成PowerPoint

首先我们需要安装名为python-pptx的三方库,命令如下所示。

pip install python-pptx

用Python操作PowerPoint的内容,因为实际应用场景不算很多,我不打算在这里进行赘述,有兴趣的读者可以自行阅读python-pptx的官方文档,下面仅展示一段来自于官方文档的代码。

from pptx import Presentation

# 创建幻灯片对象
pres = Presentation()

# 选择母版添加一页
title_slide_layout = pres.slide_layouts[0]
slide = pres.slides.add_slide(title_slide_layout)
# 获取标题栏和副标题栏
title = slide.shapes.title
subtitle = slide.placeholders[1]
# 编辑标题和副标题
title.text = "Welcome to Python"
subtitle.text = "Life is short, I use Python"

# 选择母版添加一页
bullet_slide_layout = pres.slide_layouts[1]
slide = pres.slides.add_slide(bullet_slide_layout)
# 获取页面上所有形状
shapes = slide.shapes
# 获取标题和主体
title_shape = shapes.title
body_shape = shapes.placeholders[1]
# 编辑标题
title_shape.text = 'Introduction'
# 编辑主体内容
tf = body_shape.text_frame
tf.text = 'History of Python'
# 添加一个一级段落
p = tf.add_paragraph()
p.text = 'X\'max 1989'
p.level = 1
# 添加一个二级段落
p = tf.add_paragraph()
p.text = 'Guido began to write interpreter for Python.'
p.level = 2

# 保存幻灯片
pres.save('test.pptx')

运行上面的代码,生成的PowerPoint文件如下图所示。

总结

用Python程序解决办公自动化的问题真的非常酷,它可以将我们从繁琐乏味的劳动中解放出来。写这类代码就是去做一件一劳永逸的事情,写代码的过程即便不怎么愉快,使用这些代码的时候应该是非常开心的。

【Python】Python操作Word和PowerPoint文件 1. Microsoft Office Open XML 格式 (.docx, .pptx) 概览在深入 Python 库之前,理解 Word (.docx) 和 PowerPoint (.pptx) 文件格式的本质非常重要。与旧的二进制 和 格式不同, 和 文件是基于 Microsoft Open XML 标准的。Python 中处理这些格式的库(, )的工作原理,就是解析和生成这些复杂的 XML 文件结构,并将它们封装成更易于操作的 Python 对象模型。2. Python 操作 Word 文件 阅读详情

相关推荐

Python : 一文学会办公自动化(Word、Excel、PPT)

自动化: 1946年提出,被运用于军事等方面。 办公自动化指的是现在办公和计算机技术结合起来的新型的办公的方式。 “高效的工作”正是自动化解决的问题/ 办公自动化的分类: 操作Excel: 就业数据分析等 操作Word: 考试系统生成Word试卷等 操作PPT : 用户画像分析等 使用的模块: xlrd模块 xlwt模块 smtplib模块 pywin32模块 python-ppt模块 python-docx模块 pymysql模块 xlsxwriter模块 1. xlrd模块

手写我对你的温柔 5722

【Python办公自动化】用Python操作Word和PowerPoint

日常工作中,有很多简单重复的劳动其实完全可以交给Python程序,比如根据样板文件(模板文件)批量的生成很多个Word文件或PowerPoint文件。在Python中,可以使用名为python-docx 的三方库来操作Word,可以使用名为python-pptx的三方库来生成PowerPoint。

2201_75362610的博客 629

Python 自动化办公:Excel、Word、PPT 批量处理

通过 Python 的强大功能,我们可以轻松实现对 Excel、Word 和 PowerPoint 文件的批量处理。无论是数据合并、条件筛选还是内容修改,都可以借助合适的库高效完成。这不仅节省了时间,还减少了人为错误的发生。希望本文能帮助你更好地掌握 Python 在办公自动化中的应用。```

khfiuha8782的博客 507

Qt之文件关联

1、简介 当自己需要打开自己的自定义文件,需要先打开软件,然后再加载相应的工程文件这样的繁琐操作,故添加文件关联 2、代码 void regedit_new(QString appPath,QString className,QString ext,QString extDes) { QString baseUrl("HKEY_CURRENT_USER\\Software\\Classes"); // 要添加的顶层目录 QSettings settingClasses(base

朗朗上口就行啦的博客 3847

将Word转换为PPT的几种方法及编程实现

本文将介绍几种方法来实现将Word文档转换为PPT演示文稿,并提供相应的编程示例代码。综上所述,我们介绍了使用Python和python-pptx库、VBA宏以及在线转换工具这三种方法来将Word文档转换为PPT演示文稿。你可以搜索并使用这些工具,它们通常提供简单易用的界面来上传Word文档并下载转换后的PPT演示文稿。然后,我们遍历Word文档的每个段落,创建一个新的幻灯片,并将段落内容设置为幻灯片的标题。库创建一个新的PPT演示文稿,并将每个段落的内容作为一个幻灯片的标题。方法三:使用在线转换工具。

PixelNinja的博客 976

将 Microsoft Word 文件转换为 PowerPoint 幻灯片 编程

要将 Microsoft Word 文件转换为 PowerPoint 幻灯片,可以使用 Python 编程语言和 Python-pptx 库。在这种情况下,我们需要导入 python-pptx 库和 python-docx 库,后者用于读取 Word 文档。在这一步中,我们将遍历 Word 文档的段落和表格,并将其内容添加到 PowerPoint 幻灯片中。完成上述步骤后,你将获得一个名为 “output.pptx” 的 PowerPoint 文件,其中包含从 Word 文档中提取的内容。

SVIPCODE的博客 566

26.Python操作Word和PowerPoint文件

用 Python 程序解决办公自动化的问题真的非常酷,它可以将我们从繁琐乏味的劳动中解放出来。写这类代码就是去做一件一劳永逸的事情,写代码的过程即便不怎么愉快,使用这些代码的时候应该是非常开心的。

极简之美,独具匠心。 701

Python学习第26天:Python操作Word和PowerPoint文件

本文介绍了如何使用Python操作Word和PowerPoint文档。主要内容包括:1) 使用python-docx库创建和编辑Word文档,添加标题、段落、表格、图片等元素;2) 通过模板替换批量生成Word文档;3) 使用python-pptx库创建PowerPoint幻灯片。文章提供了详细的代码示例,展示了如何实现文档自动化处理,可大幅提升办公效率。特别强调了在修改Word文档时需注意保留原有样式的方法。

tigerhhzz的博客 520

Python自学19-Python操作Word和PowerPoint文件

本文介绍了使用Python操作Word和PowerPoint文档的实用方法。重点讲解了python-docx和python-pptx库的常用功能,包括文档创建、内容修改、模板批量生成等,并对比了不同库的优缺点。同时展示了高级应用场景,如调用pywin32实现Office自动化,以及综合案例:批量生成入职通知书和汇报PPT。通过这些工具,可以显著提升办公自动化效率,减少重复性工作。适合需要处理大量文档的办公人员学习使用。

星哥玩云 595

高光谱知识(1)-高光谱成像技术的理解

系列文章目录 高光谱技术可以获得待观测目标或场景的连续单色光谱图像,并通过空间维(x, y)数据和光谱维(λ)数据共同组成三维观测数据立方体,从而为研究人员提供探测目标或场景中的每一个点的空间和光谱特征细节。这种兼具相机的高分辨成像能力和光谱仪的高光谱分辨能力使得高光谱被广泛应用于测绘遥感、目标识别、环境监测与评估、临床影像诊断、过程监控等任务中,并在地理、空间、海洋、气候、大气、农业、植被、生态、医药、安防、制造与色度等多个领域中发挥巨大作用。 文章目录系列文章目录前言一、按获取数据的过程划分二、按照光

Echo_Code的博客 1万+

STM32F407实现LwIP的MQTT客户端并连接到服务器

这个是用LwIP协议栈中自带的MQTT客户端API写成的,代码注释很详细,附带有服务端的展示。LwIP版本是2.1.2.

wait_for_STM32的博客 6394

Python - 100天从新手到大师:第二十六天Python操作Word和PowerPoint文件

本文介绍了如何使用Python操作Word和PowerPoint文件。通过python-docx库可以生成包含标题、段落、列表、表格等元素的Word文档,并演示了如何读取模板文件进行批量替换生成个性化文档。对于PowerPoint文件,则可通过python-pptx库实现类似操作。这些方法能有效提高办公自动化效率,减少重复性工作。文章提供了详细的代码示例和模板文件处理思路,适合需要批量处理文档的用户参考使用。

孤客科技 891

别再乱改宏定义了!STM32F103程序移植保姆级教程(从C8T6到ZET6实战)

本文详细解析了STM32F103程序从C8T6移植到ZET6的实战步骤,重点介绍了硬件差异、开发环境配置、时钟陷阱及外设处理等关键点。通过修改宏定义(如STM32F10X_HD)、调整启动文件和时钟配置,确保移植顺利进行。适合嵌入式开发者参考,避免常见移植问题。

weixin_42567497的博客 214

Python - 100天从新手到大师:第二十六天Python操作Word和PowerPoint文件。

Python提供了多种库来操作Word和PowerPoint文件,能够实现自动化生成、修改和格式化文档的功能。是一个强大的库,可以创建、修改和读取Word文档。库用于创建和修改PowerPoint文件。,它们分别用于处理Word和PowerPoint文件。

qaF_sizh的博客 341

OpenWebUI联网搜索实战:如何用SearXNG让本地大模型获取实时信息(附百度/360配置)

本文详细介绍了如何通过部署开源元搜索引擎SearXNG,为本地运行的OpenWebUI大语言模型(如Qwen、Llama)配置联网搜索功能,解决其知识库过时的问题。文章重点讲解了SearXNG的Docker部署、集成国内搜索引擎(如百度、360)的配置方法,以及如何与OpenWebUI无缝对接,从而实现本地大模型获取实时、准确的中文信息,提升其实用性。

weixin_28835583的博客 1866

基于 YOLOv26 的食品包装缺陷检测系统:智能视觉质检方案

本文提出了一种基于YOLOv26深度学习的食品包装缺陷智能检测系统。该系统能够自动识别多种常见包装缺陷,包括密封不良、破损、污染、标签错误等8类问题。相比传统人工检测方法,该系统具有高精度、多类别分类、实时推理等优势。文章详细介绍了系统架构,包含数据采集、预处理、YOLOv26检测模型和后处理四个核心模块,并提供了完整的环境配置和数据处理代码实现。该系统为食品包装行业提供了一种高效、准确的智能视觉质检解决方案。

一键难忘的博客 681

从0开始学python(day26——用python操作word与powerpoint,可跳过)

用Python程序解决办公自动化的问题真的非常酷,它可以将我们从繁琐乏味的劳动中解放出来。写这类代码就是去做一件一劳永逸的事情,写代码的过程即便不怎么愉快,使用这些代码的时候应该是非常开心的。建议大家用ai试一试,让你的工作能够更轻松。

qq_56657939的博客 854

MFC属性网格控件(CMFCPropertyGridCtrl)完全指南:构建专业属性编辑界面

本文详细介绍了MFC中的CMFCPropertyGridCtrl控件的使用方法。主要内容包括:控件基础用法(初始化、添加属性、事件处理)、高级设置(自定义外观、创建属性类型、动态更新)、派生类实现(自定义绘制、搜索过滤功能)、界面集成技巧(对话框布局、属性编辑器)以及实际应用示例。文章重点讲解了如何通过继承和自定义实现复杂功能,并提供了性能优化、多语言支持等最佳实践方案。该控件适用于需要大量参数配置的应用程序,能够创建类似Visual Studio属性窗口的专业界面。

专注现代C++实战,从核心语法到高性能编程,助力开发者深入掌握系统级编程精髓。 154

使用Python读取,写入office文档

1. 使用Python创建PPT并写入内容 #coding=utf-8 import os import win32com import win32com.client def CreatePPTFile(FilePath): PPT = win32com.client.Dispatch("PowerPoint.Application") PPT.Visible = True # 创建一个文件 PPTFile = PPT.Presentations.Add() # 创

西门一刀的博客 474

SAP 与 Palantir 合作全景解析:这不是普通集成,而是把 ERP、数据语义层、云迁移与企业级 AI 串成一条价值链

SAP与Palantir的战略合作聚焦企业数字化转型核心痛点,通过深度技术整合构建"数据-决策-执行"闭环。合作包含四大主线:云迁移连续性保障、SAP业务数据云与Palantir平台对接、联合工程开发、高监管行业优先落地。技术实现上采用SAP认证插件,支持双向数据交互和实时业务动作触发。该合作突破了传统ERP系统局限,将业务语义与AI执行相结合,特别适合制造业供应链优化、财务争议处理等高价值场景,为企业在云迁移过程中实现业务连续性与智能化升级提供新范式。

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 192

大模型多智能体协作面试题及参考答案

在多智能体系统里,代理定义自身目标或效用函数的过程与系统架构、应用场景紧密相关。从本质上讲,目标是代理行为的导向,而效用函数则是对目标达成程度的量化评估。代理通常依据自身角色、系统全局需求以及与其他代理的交互关系来确立目标。比如在合作型 MAS 中,代理目标可能需要与全局目标对齐,像多个物流机器人协作完成货物配送时,每个机器人的目标会围绕 “高效完成分配任务”“避免路径冲突” 等展开,其效用函数可能涉及任务完成时间、能耗等指标的加权求和。目标定义的方式存在多种类型。

大模型大数据攻城狮的专栏 1022

Python办公自动化 | 从PPT到Word

前言 本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,如有问题请及时联系我们以作处理。 PS:如有需要Python学习资料的小伙伴可以加点击下方链接自行获取 大家好,又到了Python办公自动化系列。 在之前的自动化系列文章中,我们分别讲过如何使用Python将Word中表格信息批量提取至Excel和多个Excel表格汇总至Word,今天继续讲解如何将文字从PPT中提取出来并写入Word,主要将涉及如何使用python-pptx和python-docx交互操作word和ppt文件

巫_月的博客 427

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Python操作Excel、Word、PPT和HTML文件知识点总结

【代码】Python操作Excel、Word、PPT和HTML文件知识点总结。

2302_76568160的博客 666

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

上一篇: python处理pdf文件
下一篇: python调用接口获取网络信息
veminhe
博客等级 码龄14年 721粉丝 426原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值