【办公类-22-13】周计划系列(5-4)“周计划-04 周计划表格内“小结”加粗 (2024年调整版本)

作品展示:——word表格的关键词批量加粗

背景需求:

生成正确的19周周计划内容

每个教案里面的“重点提问:”“小结:”“过渡语:”都是加粗设置

但是由于提取的是“活动过程下面的的整段内容,所以的加粗字体进入新的模板后,都变成了宋体小4不加粗

”重点提问“”小结“”过渡语“的数量很多,过去通过网络查询,我找到可以批量替换表格里的文字并加粗的代码,

【办公类-22-05】周计划系列(5)-Word关键词加粗(把所有“小结”“提问”的文字设置加粗)_word关键字加粗-CSDN博客文章浏览阅读179次。【办公类-22-05】周计划系列(5)-Word关键词加粗(把所有“小结”“提问”的文字设置加粗)_word关键字加粗https://blog.csdn.net/reasonsummer/article/details/130476685

但是上学期实验后,发现它只是把docx段落文字加粗不能把docx表格文字加粗,于是在Python批量导入生成新的周计划后,我只能是手动打开19份,然后用查找、替换、批量加粗

问题:

1、手动容易遗漏:三组文字替换下来很费时间,而且有时候会遗漏某一篇,

2、无法满足重复生成:如果周计划内容有错误,就会再次Python一套内容,这样就要重复得打开19篇,批量替换加粗19*3次,实在太不方便了 。

设计思路

本次我在使用AI对话大师过程中,发现可以指定从”Word表格"提取文字,从word段落里加粗段落文字。

那么是否可以实现——Python 读取123文件下所有docx文件里面的表格文字,如果文字是“重点提问:”,就改成“重点提问:”加粗

同时,我发现有的教案内没有“重点提问”,而是“提问”,所以要先把“提问”改成“重点提问”,然后把“重点重点提问”改成“重点提问”

通过4个小时的反复测试,AI了57条,终于获得了我想要的结果

'''
docx教案里面的“重点提问”“过渡语”“小结”加粗
作者:AI对话大师、阿夏
时间:2024年3月14日
'''
import os
from docx import Document# 文件夹路
path=r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'folder_path = path+r'\04合成新周计划'
new_path = path+r'\06测试'# 替换“提问”变成“重点提问”
for file_name in os.listdir(folder_path):if file_name.endswith(".docx"):file_path = os.path.join(folder_path, file_name)doc = Document(file_path)# 遍历所有表格并查找并修改内容for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:if "提问" in paragraph.text:for run in paragraph.runs:if "提问" in run.text:run.text = run.text.replace("提问", "重点提问")# 保存修改后的文档doc.save(os.path.join(new_path,  file_name))# 替换“重点重点提问”变成“重点提问”
for file_name in os.listdir(new_path):if file_name.endswith(".docx"):file_path = os.path.join(new_path, file_name)doc = Document(file_path)        for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:if "重点重点" in paragraph.text:for run in paragraph.runs:if "重点重点" in run.text:run.text = run.text.replace("重点重点", "重点")doc.save(os.path.join(new_path,  file_name))# 把“重点提问”改成加粗   
# 
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Pt
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml# 包含中文状态冒号,英文状态冒号
# t=['重点提问:','重点提问:','小结:','小结:','过渡语:','过渡语:']# # 遍历文件夹下所有.docx文件
# # for i in t:  
for file_name in os.listdir(new_path):if file_name.endswith(".docx"):file_path = os.path.join(new_path, file_name)doc = Document(file_path)       for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:for run in paragraph.runs:if '重点提问:' in run.text:text = run.textindex = text.find('重点提问:')if index != -1:run.text = text[:index]new_run = paragraph.add_run('重点提问:')new_run.font.bold = Truenew_run = paragraph.add_run(text[index+len('重点提问:'):])new_run.bold = run.bolddoc.save(os.path.join(new_path,  file_name))#

通过修改,让“重点提问”“小结”“过渡语”都批量加粗

全部代码:

'''
docx教案的表格里的“重点提问”“过渡语”“小结”加粗
作者:AI对话大师、阿夏
时间:2024年3月14日
'''
import os
from docx import Document
from docx.enum.text import WD_BREAK
from docx.oxml.ns import nsdeclsfrom docx.oxml import OxmlElement
from docx.oxml.ns import qn# 文件夹路
path=r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'folder_path = path+r'\04合成新周计划'
new_path = path+r'\06测试'# print("-----0、手动换行符改成段落回车--------")
# import os,re
# from docx import Document
# from docx import Document
# from docx.oxml import OxmlElement
# from docx.oxml.ns import qn
# from docx.shared import Pt# # 遍历文件夹内所有docx文件
# for file_name in os.listdir(folder_path):
#     if file_name.endswith('.docx'):
#         file_path = os.path.join(folder_path, file_name)#         # 读取docx文件
#         doc = Document(file_path)        #             # 遍历文档中的所有表格
#         for table in doc.tables:
#             for row in table.rows:
#                 for cell in row.cells:
#                     # 获取单元格中的文本
#                     text = cell.text
#                     # 替换文本中的换行符为硬回车
#                     cell.text = text.replace('\n', '\r')#          # 保存修改后的文档
#         doc.save(os.path.join(new_path,  file_name))print("-----1、替换'提问'变成'重点提问'--------")for file_name in os.listdir(folder_path):if file_name.endswith(".docx"):file_path = os.path.join(folder_path, file_name)doc = Document(file_path)# 遍历所有表格并查找并修改内容for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:if "提问" in paragraph.text:for run in paragraph.runs:if "提问" in run.text:run.text = run.text.replace("提问", "重点提问")# 保存修改后的文档doc.save(os.path.join(new_path,  file_name))print("-----2、替换'重点重点提问'变成'重点提问'--------")
for file_name in os.listdir(new_path):if file_name.endswith(".docx"):file_path = os.path.join(new_path, file_name)doc = Document(file_path)        for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:if "重点重点" in paragraph.text:for run in paragraph.runs:if "重点重点" in run.text:run.text = run.text.replace("重点重点", "重点")doc.save(os.path.join(new_path,  file_name))print("-----3、把'重点提问、小结、过渡语'等内容改成加粗--------")    
# 
from docx import Document
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
from docx.shared import Pt
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml# 包含中文状态冒号,英文状态冒号
t=['重点提问:','重点提问:','小结:','小结:','过渡语:','过渡语:']# # 遍历文件夹下所有.docx文件
for content in t:  for file_name in os.listdir(new_path):if file_name.endswith(".docx"):file_path = os.path.join(new_path, file_name)doc = Document(file_path)  # 循环读取100次# for x in range(100):for table in doc.tables:for row in table.rows:for cell in row.cells:for paragraph in cell.paragraphs:for run in paragraph.runs:if content in run.text:text = run.textindex = text.find(content)if index != -1:run.text = text[:index]new_run = paragraph.add_run(content)new_run.font.bold = Truenew_run = paragraph.add_run(text[index+len(content):])new_run.bold = run.bold                                            doc.save(os.path.join(new_path,  file_name))

本代码有待完善——word手动换行符情况下,重点问题、小结、过渡语,只能加粗第一个,现在还要将word表格里的手动换行符批量改成回车,才能将所有关键词加粗。

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

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

相关文章

洛谷 P5018 对称二叉树

题目背景 NOIP2018 普及组 T4 题目描述 一棵有点权的有根树如果满足以下条件,则被轩轩称为对称二叉树: 二叉树;将这棵树所有节点的左右子树交换,新树和原树对应位置的结构相同且点权相等。 下图中节点内的数字为权值&#xf…

SpringBoot中RestTemplate 发送http请求

SpringBoot中RestTemplate 发送http请求 引入fastjson <!--fastjson--> <dependency><groupId>com.alibaba</groupId><artifactId>fastjson</artifactId><version>2.0.47</version> </dependency>创建配置文件 新建c…

【JAVA重要知识 | 第六篇】Java集合类使用总结(List、Set、Map接口及常见实现类)以及常见面试题

文章目录 6.Java集合类使用总结6.1概览6.1.1集合接口类特性6.1.2List接口和Set接口的区别6.1.3简要介绍&#xff08;1&#xff09;List接口&#xff08;2&#xff09;Set接口&#xff08;3&#xff09;Map接口 6.2Collection接口6.3List接口6.3.1ArrayList6.3.2LinkedList—不常…

谷歌浏览器扩展 Chandlery for Fallen London 1.4 下载方式

这边 可以直接下载我的资源 Chandlery for Fallen London 1.4 下载好后 打开到最底下 一层 就会 看到这个 anhebaghddcipcnlgoehajobofkgghje_v1.4.crx 首先 我们打开 谷歌浏览器 然后 选择 右上角这三个点 然后 然后 选择 扩展程序 下面的 管理扩展程序 然后 要确保 开发者…

使用docker搭建ELK进行日志收集

目录 docker安装es docker安装kibana 为es配置中文分词器 安装原生logstash 项目服务集成日志收集 为es设置登录密码 为kibana设置登录密码 为es容器设置内存限制 使用htop或者是docker进行内存使用查询 docker安装es 与自己的springBoot版本适配即可&#xff0c;下面…

MySQL删除数据 文件大小不变的原因以及处理空洞问题

数据删除流程 InnoDB 里的数据都是用 B 树的结构组织的。 假设&#xff0c;我们要删掉 R4 这个记录&#xff0c;InnoDB 引擎只会把 R4 这个记录标记为删除。如果之后要再插入一个 ID 在 300 和 600 之间的记录时&#xff0c;可能会复用这个位置。但是&#xff0c;磁盘文件的大…

蓝桥杯(1):python排序

1 基础 1.1 输出 1.1.1 去掉输出的空格 print("Hello","World",123,sep"") print("hello",world,123,sep) print(hello,world,123) #输出结果 #HelloWorld123 #helloworld123 #hello world 123 1.1.2 以不同的方式结尾 print(&quo…

配置阿里云加速器

国内镜像中心常用阿里云或者网易云。在本地docker中指定要使用国内加速器的地址后&#xff0c;就可以直接从阿里云镜像中心下载镜像。 2024阿里云-上云采购季-阿里云 [rootlocalhost /]# mkdir -p /etc/docker [rootlocalhost /]# tee /etc/docker/daemon.json <<-EOF &…

使用电脑的时候最怕有英文?微信的这个功能一定要用起来!

相信各位小伙伴对微信都不陌生。我们平常使用微信的大部分时间都是聊天、朋友圈、视频号等。 如果有人给你发来一张全英文图片的截图&#xff0c;你会咋整&#xff1f; 请人翻译&#xff1f;这个显然不需要。 一个个字母手打上去&#xff1f;这字数少了还行&#xff0c;但多了…

【MIT 6.S081】2020, 实验记录(8),Lab: locks

目录 Task 1&#xff1a;Memory allocator (moderate)</font>Task 2&#xff1a;Buffer cache (hard)</font> Task 1&#xff1a;Memory allocator (moderate) 这个任务就是练习将一把大锁拆分为多个小锁&#xff0c;同时可以更加深入地理解 memory allocator 运行…

闲鱼月入过万的不密心法

大家好&#xff0c;我是周萝卜 再介绍一下我自己 【我叫】周萝卜 【坐标】江苏南京 【个人标签】互联网深度玩家/技术公众号运行者/个人成长/闲鱼知乎运营 【个人事件】 公众号累计4万粉丝&#xff0c;累计变现6位数 个人分享号&#xff1a;#公众号&#xff1a;萝卜的个…

docker小白第十二天

docker小白第十二天 docker network简介 docker不启动时默认的网络情况。 # 停止docker服务 systemctl stop docker.socket systemctl stop docker # 查看docker镜像 docker images输入查看docker镜像命令后&#xff0c;显示未连接到docker服务器 docker启动时网络情况 sy…