【办公类-22-13】周计划系列(5-5)“周计划-05 周计划表格内教案部分“节日”清空改成“节日“” (2024年调整版本)Win32

背景需求:

本学期19周,用了近10周的时间,终于把周计划教案部分的内容补全了(把所有教案、反思的文字都撑满一个单元格),

一、原始教案

二、新模板内的教案

三、手动添加文字后的样式(修改教案内容、增加提问和小结)

目前19周的教案文字都补全,并将“过渡语”“重点提问”“小结”加粗了。

【办公类-22-13】周计划系列(5-4)“周计划-04 周计划表格内“小结”加粗 (2024年调整版本)Win32-CSDN博客文章浏览阅读944次,点赞25次,收藏10次。【办公类-22-13】周计划系列(5-4)“周计划-04 周计划表格内“小结”加粗 (2024年调整版本)Win32https://blog.csdn.net/reasonsummer/article/details/136706722

存在问题:

有三周的教案中有节日(当天教案无内容)

最终需要的样式:

实验一:格子里是横向“XX节放假”

AI问题询问

1.查找所有表格的单元格的第一段段落,匹配5-10个字是否是“XX节放假”,

2.匹配就清空这个单元格的内容

3.然后写入“横向的XX节放假”文字,水平垂直都居中

代码展示

'''
docx教案的端午节、劳动节、清明节格子里内容清除,改为“XX节放假”
作者:AI对话大师、阿夏补充
时间:2024年4月25日日'''import os
from docx import Document
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
from docx.oxml import OxmlElement
from docx.shared import Pt
from docx.oxml.ns import qn
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_ALIGN_VERTICAL
# from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_TEXT_ORIENTATION# 指定文件夹路径
path = r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'
folder_path = path + r'\06加粗测试'
new_path = path + r'\07节日'
os.makedirs(new_path, exist_ok=True)j = ['劳动节放假', '清明节放假', '端午节放假']# 遍历文件夹下的所有文件
for filename in os.listdir(folder_path):if filename.endswith('.docx'):doc_path = os.path.join(folder_path, filename)# 打开Word文档doc = Document(doc_path)# 遍历文档中的所有表格for table in doc.tables:# 遍历表格的所有行for row in table.rows:# 遍历行的所有单元格for cell in row.cells:# 提取第一行的文字first_row_text = cell.paragraphs[0].textfor jj in j:# 判断是否符合条件if len(first_row_text) >= 10 and first_row_text[5:10] == jj:# 清空单元格的内容cell.text = ''# 添加新文字“劳动节放假”,设置宋体、20号字体,竖排文字# 在清空后的单元格内写入指定文字# 在清空后的单元格内写入指定文字p = cell.paragraphs[0]p.add_run(jj)run = p.runs[0]run.font.name = '宋体'run.font.size = Pt(100)run._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')# 单元格内的文字方向设置为纵向cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER#  设置单元格垂直居中p.alignment = WD_ALIGN_VERTICAL.CENTER# p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER# p.text_orientation = WD_TEXT_ORIENTATION.VERTICAL# run.orientation = WD_TEXT_ORIENTATION.VERTICAL# run.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER# # 在清空后的单元格内写入指定文字# p = cell.paragraphs[0]# p.add_run(jj)# run = p.runs[0]# run.font.name = '宋体'# run.font.size = Pt(20)# run.text = '\n'.join(jj)# # 设置单元格文字居中对齐# cell.vertical_alignment = WD_PARAGRAPH_ALIGNMENT.CENTER# 保存修改后的文档,保存在新文件夹中,保持原文件名不变new_doc_path = os.path.join(new_path, filename)doc.save(new_doc_path)

结果展示:

问题:

1、文字方向是横排,不是竖排

2、文字不能放大字号(写了PT100也不见文字变大)

分析:

对原来单元格进行清空,然后对原来的单元格的段落文字重新写入,此时是默认表格内的原字体和大小(宋体五号20磅),因此写pt(100)没有变大

第二次测试

通过反复问AI,终于在30次失败后,获得想要的结果

1.解决字号小的问题

对原来单元格进行清空,将对原来单元格添加新的段落文字,此时对新写入的文字进行格式修改,字号就会变大、文字可以加粗

2.解决“XX节放假”文字竖排问题

测试多次,最后只能用一个单字加回车的方法,实现文字的竖排(实际还是横排文字)——后续再研究有没有其他的竖排文字方法

代码展示

'''
docx教案的端午节、劳动节、清明节格子里内容清除,改为“XX节放假”
作者:AI对话大师、阿夏补充
时间:2024年4月25日日'''import os
from docx import Document
from docx.oxml.ns import nsdecls
from docx.oxml import parse_xml
from docx.oxml import OxmlElement
from docx.shared import Pt
from docx.oxml.ns import qn
from docx.enum.table import WD_CELL_VERTICAL_ALIGNMENT, WD_ALIGN_VERTICAL
# from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_TEXT_ORIENTATION
# from docx.enum.text import WD_PARAGRAPH_ALIGNMENT, WD_TEXT_ORIENTATION# 指定文件夹路径
path = r'D:\test\02办公类\91周计划4份_2024年中4班\04 周计划'
folder_path = path + r'\06加粗测试'
new_path = path + r'\07节日'
os.makedirs(new_path, exist_ok=True)j = ['劳动节放假', '清明节放假', '端午节放假']# 遍历文件夹下的所有文件
for filename in os.listdir(folder_path):if filename.endswith('.docx'):doc_path = os.path.join(folder_path, filename)# 打开Word文档doc = Document(doc_path)# 遍历文档中的所有表格for table in doc.tables:# 遍历表格的所有行for row in table.rows:# 遍历行的所有单元格for cell in row.cells:# 提取第一行的文字first_row_text = cell.paragraphs[0].textfor jj in j:# 判断是否符合条件if len(first_row_text) >= 10 and first_row_text[5:10] == jj:# 清空单元格的内容cell.text = ''                           # 添加新文字并设置字体p = cell.add_paragraph(jj)# # 设置文字垂直方向为纵向# p.runs[0].alignment=WD_PARAGRAPH_ALIGNMENT.Vp.runs[0].font.name = '宋体'p.runs[0].font.bold = Truep.runs[0].font.size = Pt(30)p.runs[0]._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')# p.runs[0].font.vertical_alignment=1# 设置文字垂直方向为纵向(通过按回车,把每个字换一行)p.runs[0].text = '\n'.join(jj)# 文字在表格里上下居中cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER# 设置单元格垂直居中 文字在表格里左右居中p.alignment = WD_ALIGN_VERTICAL.CENTER                                                 # 保存修改后的文档,保存在新文件夹中,保持原文件名不变new_doc_path = os.path.join(new_path, filename)doc.save(new_doc_path)

感悟:

写这个“修改教案-节日部分”的代码,就是为了应对日后的教案调整。

举例:如果日后要求“节日部分字体”变成宋体,横版、20磅,就可以通过修改代码,快速将三篇教案内的文字改掉。

为了确保EXCEL和word数据不被替换掉,难以找回,修改教案用的”加粗“文件夹和“修改节日”的“几日文件夹要分开。

写了10周,终于把所有的周计划部分的问题都破解了。最后一步就是制作19周周计划+教案的合并打印版PDF,供学期末批量正反打印了。了!胜利在望!


 

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

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

相关文章

STM32之HAL开发——电容按键

电容按键原理 电容器 (简称为电容) 就是可以容纳电荷的器件,两个金属块中间隔一层绝缘体就可以构成一个最简单的电容。如图 32_1 (俯视图),有两个金属片,之间有一个绝缘介质,这样就构成了一个电容。这样一个电容在电路板上非常容…

Detla lake with Java--入门

最近在研究数据湖,虽然不知道研究成果是否可以用于工作,但我相信机会总是留给有准备的人。 数据湖尤其是最近提出的湖仓一体化概念,很少有相关的资料,目前开源的项目就三个,分别是hudi, detla lake, iceberg。最终选择…

常用算法代码模板 (3) :搜索与图论

AcWing算法基础课笔记与常用算法模板 (3) ——搜索与图论 常用算法代码模板 (1) :基础算法 常用算法代码模板 (2) :数据结构 常用算法代码模板 (3) :搜索与图论 常用算法代码模板 (4) :数学知识 文章目录 0 搜索技巧1 树与图的存…

机器学习:基于Sklearn、XGBoost框架,使用XGBClassifier、支持向量分类器和决策树分类器预测乳腺癌是良性还是恶性

前言 系列专栏:机器学习:高级应用与实践【项目实战100】【2024】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

大数据组件之Storm简介

大数据组件之Storm简介 摘要: Apache Storm是一个开源的实时大数据处理系统,由Twitter公司开发并捐赠给Apache基金会。它以其高吞吐量、可扩展性和容错性在实时数据处理领域占据重要地位。本文将对Apache Storm进行全面介绍,包括其架构、特点…

MySQL:飞腾2000+Centos7.6 aarch64 部署MySQL8.0.36

目录 1.硬件环境 2.MySQL选择 Bundle版本【全部文件】​编辑 3.下载并安装 4.安装完成后检查mysql 5.初始化MySQL 6.那就问了,都初始化了啥? 7.尝试启动MySQL 8.给mysql文件授权 9.再次尝试启动正常 10.mysql初始化目录出现了mysql.sock 11.找…

Android SQLite中的UNIQUE constraint failed错误

报错信息: UNIQUE constraint failed SQLite中的UNIQUE constraint failed错误,表明尝试插入或更新数据库时出现了违反唯一性约束的情况。唯一性约束确保在特定列或列集合中的值在表中是唯一的,即不能有重复的值。当你尝试插入或更新已存在于…

为什么我的Mac运行速度变慢 mac运行速度慢怎么办 如何使用CleanMyMac X修复它

近些年伴随着苹果生态的蓬勃发展,越来越多的用户开始尝试接触Mac电脑。然而很多人上手Mac后会发现,它的使用逻辑与Windows存在很多不同,而且随着使用时间的增加,一些奇奇怪怪的文件也会占据有限的磁盘空间,进而影响使用…

android 分区存储(沙盒存储)适配总结

目录 一、分区存储概念 1.外部存储分类 2.分区存储如何影响文件访问 二、分区适配方案 1. 应用分区存储的文件访问规定 (1).应用专属目录--私有目录 (2).共享目录文件--公有目录 2.MediaStore API介绍 3.Storage Access Framework介绍 三、所有文件访问权限 四、总结…

C、C++的联合体:union关键字含义

C、C的联合体:union关键字含义 **联合体(Union)**在C语言中是一种特殊的数据结构,它允许在相同的内存位置存储不同的数据类型。但是,在任何时候,联合体中只有一个成员是有效的,因为所有的成员都…

http请求内容

Cookie 可以包含多个键值对,因此它不仅限于单个值。一个 Cookie 可以携带多个属性,每个属性由键值对表示 Set-Cookie: namevalue; expiresSat, 30 Apr 2022 23:59:59 GMT; path/; domain.example.com; secure; HttpOnly 在HTTP协议中,请求头之…

【项目学习01_2024.04.27_Day02】

学习笔记 3 课程查询3.4 生成接口文档ApiOperation("课程查询接口") 和Api注解的区别Api(value "课程信息编辑接口",tags "课程信息编辑接口")其中的value和tags有什么用呢Swaager的常用注解如下:3.5 开发持久层3.5.1 生成mapper3.…

从NoSQL到NewSQL——10年代大数据浪潮下的技术革新

引言 在数字化浪潮的推动下,数据库技术已成为支撑数字经济的坚实基石。腾讯云 TVP《技术指针》联合《明说三人行》特别策划的直播系列——【中国数据库前世今生】,我们将通过五期直播,带您穿越五个十年,深入探讨每个时代的数据库演…

如何获得理想的词向量表示?

为了获得理想的词向量表示以支持下游任务,词汇的嵌入向量通常会经过一系列的处理和优化步骤。以下是一些关键的操作: 初始化:嵌入向量最初是随机初始化的,但一些方法会使用更智能的初始化策略,比如通过预训练的嵌入或者…

8_手眼标定总结_auboi5机械臂与海康平面相机

经过不断地学习与调试,不断地学习网络上其他同志分享的资料,opencv手眼标定迎来了阶段性结束。实际测试结果在机械臂坐标系中X方向差5mm左右。 代码参考《https://blog.csdn.net/wanggao_1990/article/details/81435660》 注意事项: ①标定…

软考高级架构师:嵌入式操作系统微内核例题解析

1 题目和解析 1.1 题目 以下关于操作系统微内核架构特征的说法,不正确的是()。 A. 微内核的系统结构清晰,利于协作开发 B. 微内核代码量少,系统具有良好的可移植性 C. 微内核有良好的伸缩性、扩展性 D. 微内核的功能…

Java解决最后一个单词长度

Java解决最后一个单词长度 01 题目 给你一个字符串 s,由若干单词组成,单词前后用一些空格字符隔开。返回字符串中 最后一个 单词的长度。 单词 是指仅由字母组成、不包含任何空格字符的最大子字符串。 示例 1: 输入:s "Hel…

MT3608B 航天民芯代理 1.2Mhz 24V输入 升压转换器

深圳市润泽芯电子有限公司为航天民芯一级代理商 技术支持欢迎试样~Tel:18028786817 简述 MT3608B是恒定频率的6针SOT23电流模式升压转换器,用于小型、低功耗应用。MT3608B开关频率为1.2MHz,允许使用微小、低电平成本电容器和电感器高度不…

http的basic 认证方式

写在前面 本文看下http的basic auth认证方式。 1:什么是basic auth认证 basic auth是一种http协议规范中的一种认证方式,即一种证明你就是你的方式。更进一步的它是一种规范,这种规范是这样子,如果是服务端使用了basic auth认证…