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

news2024/11/26 18:39:12

背景需求:

本学期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.coloradmin.cn/o/1632113.html

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

相关文章

后端学习记录~~JavaSE篇(Module08-异常 上 )

总览: Java概述: 思维导图文件在本人个人主页上-----资源模块 资源详情(免费下载):Java学习思维导图异常篇资源-CSDN文库https://download.csdn.net/download/m0_61589682/89238330 整体展示:

2023年工业园区水环境管理典型案例名单公布

案例申报咨询: 中华环保联合会水环境治理专业委员会 联 系 人:王小雅 联系电话:13718793867 联系邮箱:wxyacef-water.com.cn

分类预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多特征分类预测

分类预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多特征分类预测 目录 分类预测 | Matlab实现POA-BP鹈鹕算法优化BP神经网络多特征分类预测分类效果基本介绍程序设计参考资料 分类效果 基本介绍 1.Matlab实现POA-BP鹈鹕算法优化BP神经网络多特征分类预测(Matlab实…

Linux 第十三章

🐶博主主页:ᰔᩚ. 一怀明月ꦿ ❤️‍🔥专栏系列:线性代数,C初学者入门训练,题解C,C的使用文章,「初学」C,linux 🔥座右铭:“不要等到什么都没有了…

Crowd counting 系列NO.1—CSRNet

CSRNet:Dilated Convolutional Neural Networks for Understanding the Highly Congested Scenes 声明:博客是用latex写的,所以直接用图片来展示吧,效果是一样的。下载资源网上都很容易搜到,如需下载资源,请留言。

《ESP8266通信指南》9-TCP通信(Arudino开发)

往期 《ESP8266通信指南》8-连接WIFI(Arduino开发)(非常简单)-CSDN博客 《ESP8266通信指南》7-Arduino 开发8266的环境配置与示例代码烧录-CSDN博客 《ESP8266通信指南》6-创建TCP服务器(AT指令)-CSDN博…

C++:string 类

在C中定义一个 std::string 字符串可以采用以下几种方式: 1.使用字符串字面量初始化: std::string str "Hello, world!"; 2.使用构造函数初始化: std::string szStringB("Hello wolven"); 3.使用重复字符初始化&am…

UE4内存优化

内存查看命令​ 可以通过Stat MemoryPlatform查看对应的内存信息 Total Virtual虚拟内存的总量 Available Virtual可用的虚拟内存 Total Physical 物理内存的总量 Available Physical 可用物理内存总量 Peak Used Virtual 表示应用程序或游戏在运行过程中达到的虚拟内存使用峰…

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

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

十大USDT交易平台大全XEX交易所

USDT是一种基于比特币区块链网络的加密代币,主要运用于数字货币交易平台,以稳定币为主。USDT的核心价值在于其与真实货币的固定兑换比率1:1,所以被称为Tether。随着加密货币市场的不断壮大,越来越多的交易平台开始支持USDT&#x…

常用的4个Linux Shell脚本,实现运维自动化的基础

🐇明明跟你说过:个人主页 🏅个人专栏:《Linux :从菜鸟到飞鸟的逆袭》🏅 🔖行路有良友,便是天堂🔖 目录 一、前言 1、Linux的起源与发展 2、什么是Shell脚本 二、实…

go引入自建包名报错 package XXX is not in std和goland设置GO111MODULE提示冲突

首先在引入自建包的时候报错 查找网上的解决方法: 1、goland取消勾选Enable Go modules integration 2、set GO111MODULEoff 但是都没解决,而且更奇怪的是,我在cmd里面查看go env就显示set GO111MODULEoff 但是在goland里面的终端输入 go…

户外小型气象站

TH-QC10随着环境保护意识的日益增强,气象监测在环保工作中扮演着越来越重要的角色。户外小型气象站作为一种便携、高效的气象监测设备,为环保工作提供了有力的支持。本文将对户外小型气象站的功能、应用场景进行简要介绍。 一、户外小型气象站的功能 户…

第九届中国海洋大学信息安全竞赛 Re 睡Lite wp

还得自己查资料 相近的版本就行 可以找到一些字符,经过分析可以猜测sub_48就是类似sleep的减速函数 就算真用芯片也跑不出来,一直sleep 往下翻可以找到很多字符 拼在一起可以大致看出flag

操作系统——优先权算法c++实现

变量描述 测试数据 5 A 0 4 4 B 1 3 2 C 2 5 3 D 3 2 5 E 4 4 1 先来先服务算法 简述 该算法实现非常简单就是对到达时间排个序&#xff0c;然后依次进行即可&#xff0c;对结构体的sort进行了重载 代码 void FCFS() {//先来先服务算法std::cout<<"\n\t\t\t\t\…

快速生成个人信息测试数据

特点&#xff1a; 业务测试的数据比较多&#xff0c;苦于测试数据生成麻烦&#xff0c;用javascripthtmlcss快速生成页面并支持导出&#xff1b; 用途&#xff1a; 1、可用于频繁的功能测试&#xff1b; 2、可用于性能测试参数化&#xff1b; 3、可用于自动化测试参数&…

Python | Leetcode Python题解之第58题最后一个单词的长度

题目&#xff1a; 题解&#xff1a; class Solution:def lengthOfLastWord(self, s: str) -> int:ls[]for i in s.split():ls.append(i)return len(ls[-1])

二叉树理论和题目

二叉树的种类 在我们解题过程中二叉树有两种主要的形&#xff1a;满二叉树和完全二叉树。 满二叉树 满二叉树&#xff1a;如果一棵二叉树只有度为0的结点和度为 2 的结点&#xff0c;并且度为 0 的结点在同一层上&#xff0c;则这棵二叉树为满二叉树。 这棵二叉树为满二叉树…

正点原子[第二期]Linux之ARM(MX6U)裸机篇学习笔记-6.4

前言&#xff1a; 本文是根据哔哩哔哩网站上“正点原子[第二期]Linux之ARM&#xff08;MX6U&#xff09;裸机篇”视频的学习笔记&#xff0c;在这里会记录下正点原子 I.MX6ULL 开发板的配套视频教程所作的实验和学习笔记内容。本文大量引用了正点原子教学视频和链接中的内容。…

Python绘制3D曲面图

&#x1f47d;发现宝藏 前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 探索Python中绘制3D曲面图的艺术 在数据可视化的世界中&#xff0c;3D曲面图是一种强大的工…