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

news2024/10/7 6:43:46

前言:

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

安装:pip install docx

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

二、读取文档中的内容

  1、读取段落内容

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

from docx import Document

path = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象

#遍历文档中的所有段落
for par in doc.paragraphs:
    text = par.text
    print(text)

        输出的结果如下:

  2、读取表格内容

from docx import Document

path = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象


# 遍历文档中的表格
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            text = cell.text
            print(text)

        输出的结果如下:

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

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

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

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

三、修改

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

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

from docx import Document

path = 'test.docx'         #word文档路径
doc  = Document(path)   #创建一个文档对象
# 遍历文档中的所有段落
for par in doc.paragraphs:
    text = par.text
    if '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 Document

path = '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 Document

path = '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.coloradmin.cn/o/751076.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

计算机毕设 大数据房价数据分析及可视化 - python 房价分析

文章目录 1 课题背景2 数据爬取2.1 爬虫简介2.2 房价爬取 3 数据可视化分析3.1 ECharts3.2 相关可视化图表 4 最后 1 课题背景 房地产是促进我国经济持续增长的基础性、主导性产业。如何了解一个城市的房价的区域分布,或者不同的城市房价的区域差异。如何获取一个城…

声音生成项目(6)——在矢量量化变分编码器上使用自回归模型PixelCNN模型生成新的样本

文章目录 介绍PixelCNN论文简读模型介绍自回归模型PixelCNN模型结构 基础知识回顾参考连接 代码实现PixelConvLayer具体运行过程卷积模块整体网络结构 模型执行效果 Colab代码本子介绍Introduction介绍获取数据创建模型需要两个类 介绍 在上一篇就是介绍了矢量量化变分模型的具…

Stable Diffusion生成图片参数查看与抹除

前几天分享了几张Stable Diffusion生成的艺术二维码,有同学反映不知道怎么查看图片的参数信息,还有的同学问怎么保护自己的图片生成参数不会泄露,这篇文章就来专门分享如何查看和抹除图片的参数。 查看图片的生成参数 1、打开Stable Diffus…

LDAP Tool Box Self Service Password

手册地址:https://self-service-password.readthedocs.io/en/latest/安装要求: Apache or another web server php (>7.4) php-curl (haveibeenpwned api) php-filter php-gd (captcha) php-ldap php-mbstring (reset mail) php-openssl (token cryp…

管理类联考——数学——记忆篇——二、代数——5.不等式

文章目录 不等式均值不等式均值不等式定义一般情况下扩展 推导加深记忆 有公式就要用绝对值不等式一元二次不等式 不等式 不等式在初中、高中甚至竞赛中都是比较相对综合、有难度的一块内容,经常会与方程、函数等其它知识点一起考察,一般的题型有&#…

查看Elasticsearch集群状态

Elastic查询 使用elastic自带的开发工具查询 查询集群健康状态 #查询集群健康状态 GET /_cluster/health集群名字使我们创建容器的时候设置的参数,状态绿色 查询节点状态 #查询节点状态 GET /_cat/nodes?v我们是使用docker容器创建的,这里显示的ip是容器内部ip 查询索…

前端做excel的录入解析,将excel的数据传给后端,显示在页面上。

具体的流程如图所示: 1.点击excel录入按钮 2.打开弹框 3.点击上传按钮,会自动打开计算机本地文件,选择想上传的文件,点击打开 4.会将excel的数据解析成一个表格,可以在表格中做删除操作,点击确定 5.将exc…

DeFi新篇章 | Sui上原生订单簿DeepBook正式上线

随着原生去中心化中央限价订单簿( Central Limit Order Book,CLOB)DeepBook的推出,Sui上的DeFi开启了新篇章。DeepBook由一群Sui贡献者共同构建,为新一代DeFi应用提供了一个稳定的流动性层。 通过DeepBook&#xff0c…

Oracle select语法

SQL 语言介绍 SQL(Structured Query Language)为数据库的语言,在 1974 年由Boyce【博伊斯】和Chamberlin【钱伯林】提 出的一种介于关系代数与关系演算之间的结构化查询语言,是一个通用的、功能极强的关系型数据库语言。包含三部分 DDL(Data Definitio…

Spring Boot配置文件与日志

目录 配置文件配置文件格式.propertiesyml 读取配置文件内容根据不同环境配置不同属性 日志自定义日志的打印更简单的日志打印日志级别日志级别的设置 日志的持久化 配置文件 Spring Boot项目的重要数据都是在配置文件中设置的。配置文件可以包含各种属性和值,用于…

LeetCode_面试题 01.01. 判定字符是否唯一

题目描述 面试题 01.01. 判定字符是否唯一https://leetcode.cn/problems/is-unique-lcci/ 实现一个算法,确定一个字符串 s 的所有字符是否全都不同。 示例 1: 输入: s "leetcode" 输出: false 示例 2: 输入: s "abc"…

中国黄金品牌怎么代理

想选择一个项目创业其实不难,中国黄金这个品牌相信大家都已经相当的熟悉,它成立于1979年,是业界中的佼佼者,一直致力于为消费者提供黄金、白银、珠宝等的产品,无论是产品质量还是服务,都在行业中处于领先地…

数据备份、还原、视图、索引 操作练习

目录 备份与还原: 题目要求: 索引和视图 题目要求: 备份与还原: 在数据库booksDB中创建表books、authorbook、authorbook: 题目要求: 1、mysqldump -uroot -pRyh201314% booksDB > /backup/db/boo…

jsonschema networknt json-schema-validator 高级能力json 数字很大时, 变成什么类型

入参校验产品化 schema_个人渣记录仅为自己搜索用的博客-CSDN博客 自动变成了bigInteger类型. 哪怕你的jsonSchema 配置的是integer , 不冲突.

Redis深入——管道、发布订阅、主从复制、哨兵监控和集群

前言 在前面的学习中,我们已经了解了Redis的基本语法以及Redis持久化和事务的概念。而在这篇文章中我们继续来梳理管道、发布订阅、主从复制、哨兵监控和集群的知识,理解Redis主从复制到集群分片的演进过程,希望对正在学习的小伙伴有一定的帮…

1039家校通SQL注入获取管理员权限

我们承认伟人在历史过程中的贡献。可人类生活的大厦从本质上说,是由无数普通人的血汗乃至生命所建造的。伟人们常常企图用纪念碑或纪念堂来使自己永世流芳。真正万古长青的却是普通人的无人纪念碑——生生不息的人类生活自身。是的,生活之树常青。 漏洞…

Signal-iOS 5.9.0编译问题

1.当我们使用pod管理 pod SDWebImage/WebP , 执行 pod install 时,发生报错.先看具体报错 : 截屏2020-07-06 上午11.12.15.png 2.报错产生原因是由于git clone 的地址是 https://chromium.googlesource.com/webm/libwebp,需要FQ 3.不想FQ,可以使用github上的地址https://githu…

Python实现word简历中图片模糊

Python实现word简历中照片模糊——保护个人隐私的有效方法 一、引言背景 在现代招聘流程中,电子简历成为了主要的招聘方式之一。然而,简历中包含的个人信息往往涉及隐私问题,特别是照片。为了保护求职者的个人隐私和数据安全,许多…

MySQL数据备份与恢复,索引,视图的简单练习

目录 一. 数据备份与恢复 (1)素材如下: 创建表格如下: (2) 1、使用mysqldump命令备份数据库中的所有表 2、备份booksDB数据库中的books表 3、使用mysqldump备份booksDB和test数据库(test数…

2023最新版本Activiti7系列-身份服务

身份服务 在流程定义中在任务结点的 assignee 固定设置任务负责人,在流程定义时将参与者固定设置在.bpmn 文件中,如果临时任务负责人变更则需要修改流程定义,系统可扩展性差。针对这种情况可以给任务设置多个候选人或者候选人组,可…