【办公类-16-10-02】“2023下学期 6个中班 自主游戏观察记录(python 排班表系列)

news2024/11/18 23:40:39

背景需求:

已经制作了本学期的中4班自主游戏观察记录表

【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录(python 排班表系列)-CSDN博客文章浏览阅读398次,点赞10次,收藏3次。【办公类-16-10-01】“2023下学期 中4班 自主游戏观察记录(python 排班表系列)https://blog.csdn.net/reasonsummer/article/details/136262898

我想给中2、中3、中4、中5、中6、中7班都制作一份《自主游戏观察记录表》

参考《中班游戏场地周次安排表(含“场地”版)》

【办公类-16-07-04】合并版“2023下学期 中班户外游戏(有场地和无场地版,一周一次)”(python 排班表系列)-CSDN博客文章浏览阅读953次,点赞18次,收藏9次。【办公类-16-07-04】合并版“2023下学期 中班户外游戏(有场地和无场地版,一周一次)”(python 排班表系列)https://blog.csdn.net/reasonsummer/article/details/136196822

思路:

循环读取《02贴墙版-中班户外游戏(含场地,有标题).xlsx》的班级标签,,把每个标签里面的A列和C列内容读取出来,写入“数据.xlsx“”

我不想去搜索班主任的姓名了,就用A和B替代,班主任使用表格时,使用查找替换功能,将A B分别变成2位班主任的名字

代码展示:


 # -*- coding:utf-8 -*- 1 
'''
自主游戏观察记录模板-中2到中7
作者:阿夏
时间:2024年2月23日
'''
# 一、导入相关模块,设定excel所在文件夹和生成word保存的文件夹
from docxtpl import DocxTemplate
import pandas as pd
import os
import time

# 

# print('----------第0步:读取班级标签,读取指定内容,写入EXCEL----')

from openpyxl import load_workbook

title=[]
for x in range(2,8):
    title .append('中{}班户外游戏'.format(x))

for y in range(len(title)):
    # 打开1.xlsx文件
    wb1 = load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\02贴墙版-中班户外游戏(含场地,有标题).xlsx')

    # 选择'Sheet2'标签
    # sheet1 = wb1['中2班户外游戏']
    sheet1 = wb1['{}'.format(title[y])]

    # 创建一个新的工作簿2.xlsx
    wb2 = load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx')

    # 选择默认的活动工作表
    sheet2 = wb2.active

    # 读取第A1:A13的内容,并保存到B1:B13
    for i in range(3, 22):
        # 项目
        value = sheet1.cell(row=i, column=3).value    # C列=3  第三行
        sheet2.cell(row=i-1, column=6).value = value     #  第二张的F列2行

        # 班级
        value = sheet1.cell(row=i, column=1).value    # A列=3 中2班
        v1=value[:1]     # 只要“中"
        v2=value[1:2]    # 只要“2"

        sheet2.cell(row=i-1, column=2).value = v1   
        sheet2.cell(row=i-1, column=3).value = v2   

    # 保存修改后的2.xlsx文件
    wb2.save(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx')

    print('----------第1步:制作路径----')
    zpath=os.getcwd()+'\\'
    zpath=r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作'+'\\'

    file_path=zpath+'零时\\'
    # print(file_path)
    # r'\零时Word'

    print('----------第2步:遍历excel,逐个生成word(form.docx是前面的模板)------------')
    try:
        os.mkdir(file_path)
    except:
        pass

    # tpl = DocxTemplate(zpath+'自主游戏观察记录模板.docx')
    IDcard = pd.read_excel(zpath+'数据.xlsx')

    week=IDcard["week"] 
    grade = IDcard["grade"]
    number=IDcard["number"]
    # str.rstrip()

    T1=IDcard["T1"]  # str.rstrip()用于去掉换行符
    T2=IDcard["T2"]  # str.rstrip()用于去掉换行符
    content=IDcard["content"]  # str.rstrip()用于去掉换行符


    # math = autho['math']
    # eng = autho['eng']

    # 遍历excel行,逐个生成
    num = IDcard.shape[0]
    for i in range(num):
        context = {
            "week": week[i],
            "grade": grade[i],
            "number": number[i],  
            "T1": T1[i],
            "T2": T2[i],
            "content": content[i],  
        
        }
        tpl = DocxTemplate(zpath+'自主游戏观察记录模板.docx')
        tpl.render(context)
        # tpl.save(file_path+r"\{} 的身份证.docx".format(name[i]))
    #
        tpl.save(file_path+"合并{}.docx".format('%02d'%week[i]))


    print('----------第3步:doc 文档合并------------') 

    # 合并所有Word
    import win32com.client as win32
    import os
    word = win32.gencache.EnsureDispatch('Word.Application')
    #启动word对象应用
    word.Visible = False


    files = []
    for filename in os.listdir(file_path):
        filename = os.path.join(file_path,filename)
        files.append(filename)



    #新建合并后的文档(使用模板,进行12个文件夹的合并,把12个文件夹的内容贴到已有的模板(包含0.7边、四分栏))
    output = word.Documents.Add()


    for file in files:
        output.Application.Selection.InsertFile(file)#拼接文档
        #获取合并后文档的内容

    doc = output.Range(output.Content.Start, output.Content.End)

    # 合并word
    lspathall=zpath+'{}({})班自主游戏观察记录(202402-202406).docx'.format(grade[i],number[i])

    output.SaveAs(lspathall) #保存
    output.Close()

    print('----------第4步:删除临时文件夹------------')    
    import shutil
    shutil.rmtree(file_path) #递归删除文件夹,即:删除非空文件夹

终端循环了6次,中2-中7班

素材及结果展示

举例:中2班

举例:中5班

感悟:

读取EXCEL标签,批量制作{{}}的xlsx数据和word模板

可以快速生成班本化的各类资料模板,让文本格式统一,减少因为格式、内容被迫返工的问题。

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

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

相关文章

无人机竞赛常用目标检测方法--色块检测

本次开源计划主要针对大学生无人机相关竞赛的视觉算法开发。 开源代码仓库链接:https://github.com/zzhmx/Using-color-gamut-limitations-such-as-HSV-and-RGB-for-object-detection.git 主要使用传统算法,如果想要使用进阶版机器学习算法,请…

golang tun设备创建并监听

golang tun设备创建并监听 linux tun设备文件地址为/dev/net/tun.直接打开即可(关闭文件描述符创建的tun虚拟接口自动注销) fd,err:syscall.Open("/dev/net/tun",syscall.O_RDWR,0640)//关闭 syscall.Close(fd)初始化 配置ip地址启动虚拟网卡 ip addr add xxx.xx…

【数据分享】中国首套1公里高分辨率大气湿度指数数据集(6个指标\免费获取)

湿度数据是气象学和许多其他领域中至关重要的数据,可用于气象预测与气候研究。之前我们分享过Excel格式和GIS矢量格式(均可查看之前的文章获悉详情)的2000-2020年全国各城市逐日、逐月和逐年的湿度数据。 本次我们给大家带来的是中国首套1公…

【Linux网络】网络编程套接字(TCP)

目录 地址转换函数 字符串IP转整数IP 整数IP转字符串IP 关于inet_ntoa 简单的单执行流TCP网络程序 TCP socket API 详解及封装TCP socket 服务端创建套接字 服务端绑定 服务端监听 服务端获取连接 服务端处理请求 客户端创建套接字 客户端连接服务器 客户端…

2023年的AI模型学习/部署/优化

可以的话,github上给点一个小心心,感谢观看。 LDC边缘检测的轻量级密集卷积神经网络: meiqisheng/LDC (github.com)https://github.com/meiqisheng/LDC segment-anything分割一切的图像分割算法模型: meiqisheng/segment-anyt…

vue2+element医院安全(不良)事件报告管理系统源代码

目录 安全不良事件类型 源码技术栈 医院安全(不良)事件报告管理系统采用无责的、自愿的填报不良事件方式,有效地减轻医护人员的思想压力,实现以事件为主要对象,可以自动、及时、实际地反应医院的安全、不良、近失事件…

flink state原理,TTL,状态后端,数据倾斜一文全

flink state原理 1. 状态、状态后端、Checkpoint 三者之间的区别及关系?2 算子状态与键控状态的区别2.1 算子状态2.2 键控状态2.3 算子状态api2.4 键控状态api 3 HashMapStateBackend 状态后端4 EmBeddedRocksDbStateBackend 状态后端5 状态数据结构介绍5.1 算子状态…

129 Linux 系统编程8 IO操作 系统函数 open

系统调用 什么是系统调用: 由操作系统实现并提供给外部应用程序的编程接口。(Application Programming Interface,API)。是应用程序同系统之间数据交互的桥梁。 C标准函数和系统函数调用关系。一个helloworld如何打印到屏幕。 回忆我们前面学过的C标准…

ArcgisForJS如何使用ArcGIS Server发布的切片地图服务?

文章目录 0.引言1.准备海量地理数据2.ArcGIS Server发布切片地图服务3.ArcgisForJS使用ArcGIS Server发布的切片地图服务 0.引言 ArcGIS Server是一个由Esri开发的地理信息系统(GIS)服务器软件,它提供了许多功能,包括发布切片地图…

MIT-6.824-Lab2,Raft部分笔记|Use Go

文章目录 前记Paper6:RaftLEC5、6:RaftLAB22AtaskHintlockingstructureguide设计与编码 2BtaskHint设计与编码 2CtaskHint question后记 LEC5:GO, Threads, and Raftgo threads技巧raft实验易错点debug技巧 前记 趁着研一考完期末有点点空余…

springboot751社区维修平台

springboot751社区维修平台 获取源码——》公主号:计算机专业毕设大全

【Logback】Logback 日志框架的架构

目录 1、Logger(记录器) (1)有效级别和级别继承 (2)日志打印和日志筛选 (3)记录器命名 2、Appenders(追加器) 3、Layouts(布局)…

C语言-指针初学速成

1.指针是什么 C语言指针是一种特殊的变量,用于存储内存地址。它可以指向其他变量或者其他数据结构,通过指针可以直接访问或修改存储在指定地址的值。指针可以帮助我们在程序中动态地分配和释放内存,以及进行复杂的数据操作。在C语言中&#…

数字化魔方:旋转到本地部署还是SaaS模式?

数字化系统部署策略的选择,无论是本地部署还是SaaS模式,其核心在于契合企业的个性化需求、成本考量、安全要求以及未来发展战略。两种部署方式各有优势和挑战,需要企业深入分析自身情况,审慎抉择。 对于本地部署而言,它…

二手货wordpress企业网站主题模板

二手车wordpress主题模板 简洁的二手车wordpress主题模板,适合做二手车业务的公司官方网站使用。 https://www.jianzhanpress.com/?p3473 wordpress二手物资回收主题 绿色wordpress二手物资回收主题,用于二手物资回收公司WP建站使用。 https://www.…

LLM (Large language model)的指标参数

1. 背景介绍 我们训练大模型的时候,或者我们用RAG的时候,不知道我们的算法,或者我们的提示,或者我们的本地知识库是否已经整理得符合要求了。又或我们需要一个指标去评估我们目前的所有围绕大模型,向量数据库或外挂知…

袁庭新ES系列10节 | 使⽤kibana对⽂档操作

前言 在前面的小节中,我们已经给大家介绍了Elasticsearch中文档的相关概念,想必有些同学都已经忘记了,那我们一块儿再来回顾下,文档即索引库中某个类型下的数据,会根据规则创建索引,将来用来搜索。可以类比…

【leetcode热题】不同的子序列

给你两个字符串 s 和 t ,统计并返回在 s 的 子序列 中 t 出现的个数,结果需要对 109 7 取模。 示例 1: 输入:s "rabbbit", t "rabbit" 输出:3 解释: 如下所示, 有 3 种可以从 s 中…

挑战杯 基于大数据的时间序列股价预测分析与可视化 - lstm

文章目录 1 前言2 时间序列的由来2.1 四种模型的名称: 3 数据预览4 理论公式4.1 协方差4.2 相关系数4.3 scikit-learn计算相关性 5 金融数据的时序分析5.1 数据概况5.2 序列变化情况计算 最后 1 前言 🔥 优质竞赛项目系列,今天要分享的是 &…

K8S-001-Virtual box - Network Config

A. 配置两个IP, 一个连接内网,一个链接外网: 1. 内网配置(Host only, 不同的 virutal box 的版本可以不一样,这些窗口可能在不同的地方,但是配置的内容是一样的): 静态IP 动态IP 2. 外网(创建一个 Networ…