【办公类-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].text
                    
                    for 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].text
                    
                    for 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.V
                            p.runs[0].font.name = '宋体'
                            p.runs[0].font.bold = True
                            p.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.mfbz.cn/a/581666.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

第 4 篇 : Netty客户端互发图片和音/视频

说明 因为图片和音/视频不能确定其具体大小, 故引入MinIO。客户端之间只发送消息, 通过上传/下载来获取额外信息 1. MinIO搭建(参考前面文章), 并启动 2. 登录MinIO创建3个Bucket: image、voice、video 3. 客户端改造 3.1 修改 pom.xml <?xml version"1.0" …

党建3d互动虚拟现实网上展厅有何优势?

在数字化浪潮席卷全球的今天&#xff0c;企业如何迅速踏上虚拟世界的征程&#xff0c;开启元宇宙之旅?答案就是——3D虚拟云展。这一创新平台&#xff0c;华锐视点以虚拟现实技术和3D数字建模为基石提供3D云展搭建服务&#xff0c;助力企业轻松搭建起虚拟数字基础设施&#xf…

【linux】动静态库的使用与制作

本章节是基础IO的的最后一个话题!! 目录 浅谈一下动静态库&#xff1a;动静态库的制作与使用&#xff1a;静态库&#xff1a;怎么办&#xff1a;方法一&#xff1a;方法二&#xff1a;方法三&#xff1a;方法四&#xff1a; 是什么&#xff1a;为什么&#xff1a; 动态库&#…

机器学习:基于Sklearn、XGBoost框架,使用逻辑回归、支持向量机和XGBClassifier预测帕金森病

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

USB HID报告描述符学习

参考资料 HID 报告描述符 (qq.com)https://mp.weixin.qq.com/s?__bizMzU1ODI3MzQ1MA&mid2247485748&idx1&sn112bd8014eb96b03308b3b808549e8d4&chksmfc284ff1cb5fc6e770c2d2ece46c17bf2529901b45a357938978fa62163723556ad497b05c47&cur_album_id3340417…

低代码+定制物资管理:创新解决方案探析

引言 在当今快速变化的商业环境中&#xff0c;企业面临着不断增长的挑战&#xff0c;如提高效率、降低成本、满足客户需求等。为了应对这些挑战&#xff0c;企业需要不断创新并采用先进的技术解决方案。在这样的背景下&#xff0c;低代码开发和定制化物资管理成为了引领企业变…

大象机器人开源六轴协作机械臂myCobot 320 手机摄影技术!

引言 有没有遇到过这样的情况&#xff1a;当你手持手机或相机准备拍摄视频时&#xff0c;心中已经构想了完美的画面&#xff0c;但却因为实际的限制无法捕捉到理想中的角度&#xff1f;这种情况可能会让人感到挫折。例如&#xff0c;如果想要从地面一只蚂蚁的视角拍摄&#xff…

罗宾斯《管理学》第15版笔记/课后习题/考研真题答案

第Ⅰ篇 管理导论 第1章 工作场所中的管理者和你 1.1 知识结构导图 1.2 考点难点归纳 1.3 课后习题详解 1.4 考研真题详解 附加模块一 管理史 知识结构导图 考点难点归纳 课后习题详解 考研真题详解 第2章 决 策 2.1 知识结构导图 2.2 考点难点归纳 2.3 课后习题详解…

linux的压缩与备份

一、打包 格式&#xff1a;tar -参数 <打包文件名> <打包的目标> 作用&#xff1a;将文件或者目录打包 重要参数&#xff1a;-f 使用归档文件&#xff0c;一定要加上这个参数 -c 新建打包文件 -x 解包文件 -t 可以不用解包就能查看包文件内容 -v 打包和解包时显…

《Fundamentals of Power Electronics》——Boost电路及仿真

Boost电路的拓扑结构如下所示&#xff1a; 下面是在simulink中搭建的一个Boost电路的仿真实验平台&#xff0c;其中直流输入电压为100V&#xff0c;电感值为1mH(模拟电阻为1毫欧)&#xff0c;电容值为470uF&#xff0c;负载为50欧姆&#xff0c;占空比选择为0.5&#xff0c;开关…

Cmake Learn

目录 1 常用命令 &#xff08;1&#xff09;configure_file &#xff08;2&#xff09;.cmake文件 &#xff08;3&#xff09; install &#xff08;4&#xff09;include_directories &#xff08;5&#xff09; add_subdirectory &#xff08;6&#xff09; find_libr…

C#队列(Queue)的基本使用

概述 在编程中&#xff0c;队列&#xff08;Queue&#xff09;是一种常见的数据结构&#xff0c;它遵循FIFO&#xff08;先进先出&#xff09;的原则。在C#中&#xff0c;.NET Framework提供了Queue<T>类&#xff0c;它位于System.Collections.Generic命名空间下&#x…

Aiseesoft Blu-ray Player for Mac:蓝光播放器

Aiseesoft Blu-ray Player for Mac是一款功能强大且易于使用的蓝光播放器&#xff0c;专为Mac用户打造。它以其卓越的性能和简洁的操作界面&#xff0c;为用户带来了全新的高清蓝光播放体验。 Aiseesoft Blu-ray Player for Mac v6.6.50激活版下载 这款软件支持播放任何高质量的…

AI视频教程下载:构建一个ChatGPT股票配对交易机器人

ChatGPT及其后续版本GPT-4已经开始改变世界。人们对新机会感到兴奋&#xff0c;同时对我们社会可能受到的影响感到恐惧。这门课程结合了两个主题&#xff1a;AI和财务&#xff08;算法交易&#xff09;。 你将会学到的&#xff1a; 使用ChatGPT构建一个Python配对交易机器人 …

【Leetcode每日一题】 动态规划 - 简单多状态 dp 问题 - 打家劫舍 II(难度⭐⭐)(67)

1. 题目解析 题目链接&#xff1a;213. 打家劫舍 II 这个问题的理解其实相当简单&#xff0c;只需看一下示例&#xff0c;基本就能明白其含义了。 2.算法原理 这个问题是经典的“打家劫舍”问题的变种&#xff0c;原问题是在单排房屋中进行偷窃&#xff0c;而这个问题则是在…

Idea报错:无法访问org.springframework.boot.SpringApplication

在开发项目时&#xff0c;常常会遇到这种问题&#xff0c;报错信息如下图所示 版本号与jdk版本号存在对应关系&#xff0c;61.0对应jdk17&#xff0c;52.0对应jdk8 所以是某个依赖的版本太高&#xff0c;降低该依赖的版本即可 具体步骤&#xff1a; ①修改pom.xml中spring b…

Redis基本數據結構 ― String

Redis基本數據結構 ― String 介紹常用命令範例1. 為字串鍵設值/取得字串鍵的值2. 查看字串鍵的過期時間3. 如何為key設置時間?4. 如何刪除指定key?5. 如何增加value的值?6. 獲取value值的長度 介紹 字串鍵是Redis中最基本的鍵值對類型&#xff0c;這種類型的鍵值對會在數據…

Working with Design Patterns in Go (Golang)

introduction&#xff1a; 1、go及GoLand的下载安装&#xff1a; 安装包下载地址为&#xff1a;https://golang.org/dl/ 推荐使用国内地址:Go下载 - Go语言中文网 - Golang中文社区 2、Docker Docker允许开发中将应用、依赖、函数库、配置一起打包&#xff0c;形成可移植镜…

算法学习(5)-图的遍历

目录 什么是深度和广度优先 图的深度优先遍历-城市地图 图的广度优先遍历-最少转机 什么是深度和广度优先 使用深度优先搜索来遍历这个图的过程具体是&#xff1a; 首先从一个未走到过的顶点作为起始顶点&#xff0c; 比如以1号顶点作为起点。沿1号顶点的边去尝试访问其它未…

pycharm 安装“通义灵码“并测试

过程&#xff1a;“File>setting>Plugins” 提示&#xff1a; 翻译之后&#xff1a; 点击"接受"之后&#xff0c;提示一下图片&#xff0c;点击ok 安装完成&#xff1a; 安装完"通义灵码"之后&#xff0c;需要登陆&#xff0c;登陆后测试 参考…