word文档的写入(1)

news2024/9/20 12:36:10

Word文档的写入

我们手动复制Excel信息,再粘贴进Word,进行文件保存的整个操作。属于机械性的重复劳动,并不能带来太大价值。在Excel和Word的操作内,也没有能很好解决此类问题的方法。
如果遇到信息一多,几十上百个文件,就需要花费大量的时间和精力。
利用Python的循环语句,可以帮助我们完成大量的重复性操作。包括从Excel文档、Word文档中,进行数据的读取、写入、保存。

首先,我们先学习一个小的写入操作:
在Word文档中,找到一个需要插入信息的位置,并将信息插入到Word文件对应的位置中。
之后,我们再学习,批量从Excel里读取信息,然后将信息批量加入Word文档中。

怎么样找到Word文档中需要插入信息的位置呢?
我们来观察下右边的“成绩报告单模版.docx”,红色框出的就是我们需要填入信息的位置。能够发现,在这个Word文档中,我们需要写入的信息,既有在段落中,也有在表格中。
我们首先来学习在段落中找到需要插入信息的位置

在将信息写入Word文档前,我们需要先读取该文档。文档存储在 "成绩报告单模版.docx" 路径下,还记得读取Word文档的相关步骤吗?
1. 导入docx模块
2. 使用函数docx.Document()函数读取指定路径下的Word文件
我们将读取后的Word对象赋值给变量doc。

读取Word文档后,我们就可以对其进行相关的读写操作。

以 姓名:这一个段落举例:
它位于Word文档的第4个段落
如果我们想在后面写入“小夜同学”,需要在冒号(:)的末尾进行相关操作。

那么该如何定位到冒号:末尾的位置呢?

根据前面课程所学习的Word文档的基本结构,我们知道一个Word文档(Document)的基本组成单位是段落(Paragraph),而段落中的文本内容至少包含一个或多个样式块(run)。

要在冒号:后插入文本信息,就需要知道:位于第四个段落的第几个样式块。

我们先通过.paragraphs属性和索引,读取doc中的第4个段落。
再通过.runs属性获取该段落中的样式块对象列表,并赋值给变量runList
runList列表中的元素是第4个段落里所有的样式块对象。

在for循环里,我们使用.text属性获取各样式块的文本内容,并赋值给变量runText。
在最后,格式化输出了变量index和runText。
根据输出内容,就可以清楚地知道每一个索引所对应的文本内容啦~

根据输出结果可以看出:

姓名:这个段落一共包含3个样式块。

第1个样式块的文本内容是
第2个样式块的文本内容是一个空格
第3个样式块的文本内容是名:

要填入信息,就需要在 名:的末尾写入。
名:所在样式块的索引是2,那么就可以通过doc.paragraphs[3].runs[2]进行访问。

根据刚刚所学的内容,我们来自己获取一下,如果要在院系:后面插入信息,那应该在第几个样式块里进行操作呢?
提示:院系:位于Word文档中的第6个段落~

# 使用import导入docx

import docx

# 读取工作目录里"成绩报告单模版.docx"的Word文档赋值给变量doc

doc = docx.Document("成绩报告单模版.docx")

# 获取doc中第6段的所有样式块对象,并赋值给遍历runList

runList = doc.paragraphs[5].runs

# 使用for循环和enumerate()函数

# 遍历储存标准答案的列表runList的同时

# 生成一个从0开始的index

for index, value in enumerate(runList):

    # 获取当前样式块的文本内容,并赋值给变量runText

    runText = value.text

    # 格式化输出:索引n----xxxxx

    print(f"索引{index}----{runText}")

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

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

相关文章

Win11小技巧之调节音量

无意中发现,鼠标悬停在喇叭🔈处可通过滚轮调节音量,无需每次都点开音量面板,再悬停在音量滚动条处通过滚轮调节!(设计师……怎么不早告诉我……) 不用点开,之前一直都是这么调节音量…

c++—多态【万字】【多态的原理】【重写的深入学习】【各种继承关系下的虚表查看】

目录 C—多态1.多态的概念2.多态的定义及实现2.1多态的构成条件2.2虚函数的重写2.2.1虚函数重写的两个例外:2.2.1.1协变2.2.1.2析构函数的重写 2.3 c11的override和final2.3.1final2.3.2override 2.4 重载、重写、重定义的对比 3.抽象类3.1抽象类的概念3.2接口继承和…

5款录屏软件电脑版,哪一款更适合你?

身边不少做行政的小伙伴,经常需要制作一些培训视频、会议记录或是演示文稿。这就要求他们必须掌握一款好用的录屏软件。作为一个经常搜索各种办公软件的人,今天,我就来分享一下我使用过的五款录屏软件在录制电脑屏幕时的表现。 1、福昕录屏大…

枚举类题目练习心得

两数之和 题目如下: 一点思路:该题目仅限于数据量少的情况使用枚举,从题目分析来看,需求是给定一个数字,要求在给定数组中找到两个数字并使这两个数字和为给定数字且返回目标数字下标。参考题解思路结合本身思路代码…

Leetcode—环形链表||

题目描述 思路 快慢指针 结论 我们需要用到一个重要的结论:让一个指针从链表起始位置开始遍历链表,同时让一个指针从判环时相遇点的位置开始绕环运行,两个指针都是每次均走一步,最终肯定会在入口点的位置相遇。 画图解释 1.利用快慢指针找到相遇点 2. 定义两个…

java138-异常处理_java 138错误

//异常 public class test79 { //定义方法声明定义异常,在满足条件时抛出异常对象,程序转向异常处理 public double count(double n,double m)throws Exception { if (m 0) {//如果除数等于0.则抛出异常实例 throw new Ex…

day03 - Java集合和常用类

第一章 Collection集合 1. Collection概述 集合:java中提供的一种容器,可以用来存储多个数据 集合和数组既然都是容器,它们有啥区别呢? 数组的长度是固定的。集合的长度是不固定的。集合可以随时增加元素,其大小也随…

kubeadm方式安装k8s+基础命令的使用

一、安装环境 二、前期准备 1.设置免密登录 [rootk8s-master ~]# ssh-keygen [rootk8s-master ~]# ssh-copy-id root192.168.2.77 [rootk8s-master ~]# ssh-copy-id root192.168.2.88 2.yum源配置 3.清空创建缓存 4.主机映射(三台主机都要设置) 5.安装…

vivado中选中bd文件后generate output product是什么用,create HDL wrapper是什么用

vivado中选中bd文件后generate output product是什么用 在Vivado中,“Generate Output Products” 是一个重要的步骤,它用于生成IP核的输出产品,这些产品是将IP核集成到设计中所需的文件。这些输出产品包括: 综合文件&#xff…

多线程下的共享变量访问数据竞争的问题

多线程下对共享变量的写存在数据竞问题可导致数据与预期不一致。最近在研究race conditions漏洞,用以下python 代码记录一下,以此论证,如下: from concurrent.futures import ThreadPoolExecutor globalNum 5 def test():global…

微积分-反函数6.1(反函数)

表1提供了一项实验的数据,其中细菌培养物在有限营养基中以100个细菌开始;在定时记录下细菌数量随时间的变化。细菌数量 N N N 是时间 t t t 的函数: N f ( t ) N f(t) Nf(t)。 然而,假设生物学家改变了她的观点,开…

京东App秒级百G日志传输存储架构设计与实战

本文作者:平台业务研发部-武伟峰,数据与智能部-李阳 背景 在日常工作中,我们通常需要存储一些日志,譬如用户请求的出入参、系统运行时打印的一些info、error之类的日志,从而对系统在运行时出现的问题有排查的依据。 …

作为研发部门的负责人,如何助力产品在市场竞争中胜出?浅谈 CTQ

在激烈的市场竞争中,产品研发团队如何帮助企业的产品脱颖而出?成功的产品往往不仅依赖于强大的功能和技术创新,还需要通过高效的研发效能,包括效率、质量和创新,来提升产品的市场竞争力。在本文中,我们将探…

文档内容识别系统源码分享

文档内容识别检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

一款源码阅读的插件

文章目录 进度汇报功能预览添加高亮标记高亮风格设置笔记颜色设置数据概览高亮数据详情 结尾 进度汇报 之前提到最近有在开发一个源码阅读的IDEA插件,第一版已经开发完上传插件市场了,等官方审批通过就可以尝鲜了。插件名称:Mark source cod…

基于STM32F407ZGT6——看门狗

独立看门狗 独立看门狗的时钟由独立的RC 振荡器LSI 提供,即使主时钟发生故障它仍然有效,非常独立。 LSI 的频率一般在30~60KHZ 之间,根据温度和工作场合会有一定的漂移, 所以独立看门狗的定时时间并不一定非常精确,只适…

格式化u盘选择FAT还是NTFS U盘和硬盘格式化两者选谁

Mac用户在将U盘或硬盘进行格式化时,选择FAT还是NTFS往往是一个让人纠结的问题。很多用户不知道这两个格式之间有什么区别,更不知道在格式化时如何做出选择。本文将为大家介绍Mac选择FAT还是NTFS,并为大家推荐U盘和硬盘格式化两者选谁。 一、…

36.贪心算法3

1.坏了的计算器(medium) . - 力扣(LeetCode) 题目解析 算法原理 代码 class Solution {public int brokenCalc(int startValue, int target) {// 正难则反 贪⼼int ret 0;while (target > startValue) {if (target % 2 0…

第159天:安全开发-Python-协议库爆破FTPSSHRedisSMTPMYSQL等

案例一: Python-文件传输爆破-ftplib 库操作 ftp 协议 开一个ftp 利用ftp正确登录与失败登录都会有不同的回显 使用ftplib库进行测试 from ftplib import FTP # FTP服务器地址 ftp_server 192.168.172.132 # FTP服务器端口(默认为21) ftp_po…

Base 社区见面会 | 新加坡站

活动信息 备受期待的 Base 社区见面会将于 Token2049 期间在新加坡举行,为 Base 爱好者和生态系统建设者提供一个独特的交流机会。本次活动由 DAOBase 组织,Base 和 Coinbase 提供支持,并得到了以下合作伙伴的大力支持: The Sand…