【办公类-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】✨︎ 在本专栏中不仅包含一些适合初学者的最新机器学习项目,每个项目都处理一组不同的问题,包括监督和无监督学习、分类、回归和聚类,而且涉及创建深度学…

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.找…

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

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

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

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

【项目学习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》 注意事项: ①标定…

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认证…

【源码阅读】 Golang中的database/sql库源码探究

Note:文章待完结 文章目录 前言一、整体目录结构二、driver包1、驱动相关driver.Driver2、驱动连接:driver.Conn3、预处理结构:Stmt4、执行结果 driver.Result5、查询结果:driver.Rows6、driver.RowsAffected7、driver.Value8、Va…

IMU识别高尔夫球击球位置

近日,来自欧洲的一支奥地利科研团队联合高校和业界专家,通过在高尔夫球杆上安装IMU传感器,用来实时精准识别球杆与球的接触点位置,以增强高尔夫训练效果。 该团队致力于开发一种移动式解决方案,以替代传统的静态检测技…

python基础知识(17)面向对象 1

一、面向对象的概念 1、面向对象的两个基本概念 编程语言中,一般有两种编程思维,面向过程和面向对象。 面向过程,看重的是解决问题的过程。 这好比我们解决日常生活问题差不多,分析解决问题的步骤,然后一步一步的解决…

MySQL 之 主从复制

1. 主配置文件(win下是my.ini,linux下是my.cnf) #mysql 服务ID,保证整个集群环境中唯一 server-id1 #mysql binlog 日志的存储路径和文件名 log-bin/var/lib/mysql/mysqlbin #错误日志,默认已经开启 #log-err #mysql的安装目录 #basedir #mys…

E-MapReduce极客挑战赛季军方案

前一段时间我参加了E-MapReduce极客挑战赛,很幸运的获得了季军。在这把我的比赛攻略给大家分享一下,希望可以抛砖引玉。 赛题分析与理解 赛题背景: 大数据时代,上云已成为越来越多终端客户大数据方案的落地选择,阿里…

特别的时钟特别的倒计时

念念不忘的歌曲&#xff1a;Thats Why You Go Away <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title&…

测算sample gpt

测算代码 import pandas as pd import matplotlib.pyplot as pltlosspd.read_pickle("loss_8.pkl") plt.plot(loss) losspd.read_pickle("loss_16.pkl") plt.plot(loss) losspd.read_pickle("loss_4_8.pkl") plt.plot(loss) losspd.read_pickle(…