Python+docx实现python对word文档的编辑

前言:

        该模块可以通过python代码来对word文档进行大批量的编辑。docx它提供了一组功能丰富的函数和方法,用于创建、修改和读取Word文档。下面是docx模块中一些常用的函数和方法的介绍:

安装:pip install docx

一、准备一个word文档,文档内容大致如下

二、读取文档中的内容

  1、读取段落内容

                通过遍历 doc.paragraphs 来获取文档中的每个段落的文本内容。

from docx import Documentpath = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象#遍历文档中的所有段落
for par in doc.paragraphs:text = par.textprint(text)

        输出的结果如下:

  2、读取表格内容

from docx import Documentpath = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象# 遍历文档中的表格
for table in doc.tables:for row in table.rows:for cell in row.cells:text = cell.textprint(text)

        输出的结果如下:

需要开发工具来实现word 或 Excel 批量编辑的欢迎给我留言

[+]可以代开发可视化操作界面;

[+]高度贴合用户需求和使用场景;

[+]一次投入,永久受益,实现高效快速办公,永久解放双手

三、修改

修改内容需要注意,需要配合document.save(file_path):将文档保存到指定的文件路径file_path

 1、修改文档内容:  比如把文档中的   “所有的123”  替换成   “好好学习”

from docx import Documentpath = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象
# 遍历文档中的所有段落
for par in doc.paragraphs:text = par.textif '123' in par.text:par.text = par.text.replace('123','好好学习!')
#凡是有保存功能的,需要先把原文档关闭才可以编辑
doc.save(path)  #注意这里如果使用的原文档的路径,则会直接对原文档的内容进行修改,
new_path = 'new_test.docx'    #创建一个新路径
doc.save(new_path)          #这里则会把内容保存到一个新文档中

        输出结果:

因为我这里保存了两个路径: 

1、可以看到这里新生成了一个word文档

2、查看两个文档中的内容

原文档:

新生成文档:

总结:

1、思路:

        先定位修改的内容——>然后赋值——>保存(没有修改的内容都会原样保存下来)

2、运行修改的功能时候需要把原文档关闭;

3、如果不生成新的文档则切记,修改内容不可逆!!!
 

2、修改表格内容:  把表格中的    “休息”  替换成  “预习”

        这里可以多复制几张表格

 按照上面的思路来:

1、先定位,找到修改目标的坐标

from docx import Documentpath = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象
tables = doc.tables
#获取表格中所有内容对应的坐标
for i, row in enumerate(tables[0].rows):for j, cell in enumerate(row.cells):print( f'[+]{cell.text}    [+]对应的坐标是   ({i}, {j})\n')

输出结果:

         这里注意(这里找坐标和我们平时看表的习惯不一样,他们并没有逻辑上的关系,而只是单纯的坐标来对应)

 2、记住这个坐标我们后面就可以对所有的表进行修改:

注意下面代码中的  cell(2,1) 中的坐标就是上面我们找到的坐标,通过tables[tab]是逐一遍历出每一张表格,然后把对应的坐标文档替换为  '预习'.

from docx import Documentpath = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象
tables = doc.tables         #这里已经把文档中的所有表格都取出来了,以列表的形式存储
#获取表格中所有内容对应的坐标
for tab in range(len(tables)):tables[tab].cell(2,1).text='预习'
# #凡是有保存功能的,需要先把原文档关闭才可以编辑
doc.save(path)  #注意这里如果使用的原文档的路径,则会直接对原文档的内容进行修改,

输出结果:

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MYSQL执行一条SELECT语句的具体流程

昨天CSDN突然抽风 我一个ctrlz把整篇文章给撤掉了还不能复原 直接心态崩了不想写了 不过这部分果然还是很重要,还是写出来吧 流程图 这里面总共有两层结构Server层 储存引擎 Server 层负责建立连接、分析和执行 SQL。MySQL 大多数的核心功能模块都在这实现,主要包…

WebSocket理解

WebSocket理解 WebSocket定义与HTTP关系相同点:不同点:联系总体过程 HTTP问题长轮询Ajax轮询 WebSocket特点 WebSocket 定义 本质上是TCP的协议 持久化的协议 实现了浏览器和服务器的全双工通信,能更好的节省服务器资源和带宽 与HTTP关系 相同点: 基于…

【bug】flameshot在ubuntu上的4K屏幕,双屏幕上用不了截图

问题 直接在4K屏幕上运行flameshot截图,直接黑屏 主屏 :4K 副屏:2k 解决 2.1长按1-2秒开机键,先回到桌面。 2.2 设置主屏缩放为125% 2.3 设置键盘快捷键命令为env QT_AUTO_SCREEN_SCALE_FACTOR1 flameshot gui 替代flameshot的…

zeppelin的hive使用

zeppelin的hive使用 配置项 default.driver org.apache.hive.jdbc.HiveDriver default.url jdbc:hive2://192.168.xxx.xxx:10000 default.user hiveHive使用:点击create new note Default Interpreter选择hive

动态表单实现原理

目录 动态表单是什么 动态表单的关键 前后端职责 数据库与表结构 功能实现与改进建议 动态表单是什么 静态表单是很常见,也是常规做法,其表单的结构是固定的,通常情况下一个表单对应数据库的一张表,表单中一个数据项对应数据表的一…

idea创建webapp文件夹

结果的图片: 第一步: file-》project structure 第二步: 修改路径,点击右侧“Deloyment descriptors”下面的笔进行修改。 // 增加了src\main // web修改为了webapp C:\Users\www12\Desktop\huwantiku2\src\main\webapp\WEB-IN…

【Java】JVM执行流程、类加载过程和垃圾回收机制

JVM执行流程执行引擎本地方法接口运行时数据区方法区堆虚拟机栈(线程私有)本地方法栈(线程私有)程序计数器(线程私有) 堆溢出问题类加载类加载的过程加载连接验证准备解析 初始化 双亲委派机制 垃圾回收死亡对象的判断算法引用计数算法可达性分析算法 垃圾回收的过程标记-清除算…

Linux常用命令——emacs命令

在线Linux命令查询工具 emacs 功能强大的全屏文本编辑器 补充说明 emacs命令是由GNU组织的创始人Richard Stallman开发的一个功能强大的全屏文本编辑器,它支持多种编程语言,具有很多优良的特性。有众多的系统管理员和软件开发者使用emacs。 语法 e…

C语言动态获取设备的网络接口名称和状态以及对应的IP地址

一、目的 在实际项目中需要获取设备的IP地址然后通过广播的形式通知局域网内的其他设备。 二、介绍 方法一 通过ioctl方式获取SIOCGIFADDR信息 /** C Program to Get IP Address*/ #include <stdio.h> #include <string.h> #include <sys/types.h> #includ…

【数学建模】统计分析方法

文章目录 1.回归分析2. 逻辑回归3. 聚类分析4. 判别分析5. 主成分分析6. 因子分析7. 对应分析 1.回归分析 数据量要多&#xff0c;样本总量n越大越好——>保证拟合效果更好&#xff0c;预测效果越好 一般n>40/45较好 方法 建立回归模型 yiβ0β1i……βkxkiεi 所估计的…

Unity 编辑器-查找所有未被使用的Prefab

需求 接到一个需求&#xff0c;将Res里所有特效相关的prefab检查一下&#xff0c;没有使用的移除。 分析 先拆解一下需求&#xff0c;如下 #mermaid-svg-YiTzyE1BvQ0ZTgLj {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#merm…

【运维】 第02讲(上):企业 Nginx 高性能优化配置实战总结

本课时讲解关于 Nginx 配置优化的内容&#xff0c;相信对于 Nginx 你一定并不陌生&#xff0c;它是一款轻量级的开源 Web 服务及代理程序。在 Nginx 出现之前市场上主流两款 Web 服务&#xff0c;一款是 Windows 系统上的 IIS&#xff0c;另外一款是 Linux 系统上的 Apache。而…