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

背景需求:

已经制作了本学期的中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_workbooktitle=[]
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.xlsxwb2 = load_workbook(r'C:\Users\jg2yXRZ\OneDrive\桌面\周计划\01自主游戏观察记录模板制作\数据.xlsx')# 选择默认的活动工作表sheet2 = wb2.active# 读取第A1:A13的内容,并保存到B1:B13for 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 文档合并------------') # 合并所有Wordimport win32com.client as win32import osword = win32.gencache.EnsureDispatch('Word.Application')#启动word对象应用word.Visible = Falsefiles = []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)# 合并wordlspathall=zpath+'{}({})班自主游戏观察记录(202402-202406).docx'.format(grade[i],number[i])output.SaveAs(lspathall) #保存output.Close()print('----------第4步:删除临时文件夹------------')    import shutilshutil.rmtree(file_path) #递归删除文件夹,即:删除非空文件夹

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

素材及结果展示

举例:中2班

举例:中5班

感悟:

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

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

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

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

相关文章

邮件发送/接收过程分析、常见邮箱sport/dport列举、检测规则开发思路分析

一、邮件发送和接收过程分析 (转载自:邮件的发送和接收过程——STMP、POP、IMAP、MIME_当收件人接收电子邮件时自己的邮件服务器通过什么收文件-CSDN博客) 电子邮件发送协议 是一种基于“ 推 ”的协议,主要包括 SMTP &#xff1…

javaweb day3 day4 day5

js 引入方式 写法 基础语法 写法 变量 写法 数据类型 运算符 与java相同 会判断类型是否相同 循环控制语句 和java相同 函数(方法) 写法 Array数组 写法 string字符串 写法 js自定义对象 写法 JSON 写法 BOM window 写法 location 写法 DOM 案例…

TensorFlow2.x 精选笔记(1)数据基本操作与线性代数

学习参考: 动手学深度学习2.0Deep-Learning-with-TensorFlow-bookpytorchlightning 一、数组与张量 虽然张量看起来是复杂的对象,但它们可以理解为向量和矩阵的集合。理解向量和矩阵对于理解张量至关重要。 向量是元素的一维列表,向量是一…

【这个词(Sequence-to-Sequence)在深度学习中怎么解释,有什么作用?】

🚀 作者 :“码上有前” 🚀 文章简介 :深度学习笔记 🚀 欢迎小伙伴们 点赞👍、收藏⭐、留言💬 Sequence-to-Sequence(Seq2Seq) Sequence-to-Sequence(Seq2Seq…

【深度学习笔记】卷积神经网络——填充和步幅

填充和步幅 在前面的例子 fig_correlation中,输入的高度和宽度都为 3 3 3,卷积核的高度和宽度都为 2 2 2,生成的输出表征的维数为 2 2 2\times2 22。 正如我们在 sec_conv_layer中所概括的那样,假设输入形状为 n h n w n_h\tim…

linux前端部署

安装jdk 配置环境变量 刷新配置文件 source profile source /etc/profile tomcat 解压文件 进去文件启动tomcat 开放tomcat的端口号 访问 curl localhsot:8080 改配置文件 改IP,改数据库名字,密码, 安装数据库 将war包拖进去 访问http:…

伪装成简历的攻击样本,HR小伙伴注意啦

样本简介 样本伪装成个人求职简历进行钓鱼攻击,名称为简历.docm,如下所示: 打开简历样本之后,提示包含宏代码,如下所示: 查看简历内容,发现竟然还是伪造的一份安全研究人员的简历,而…

前端学习——vue学习

文章目录 1. < el-form> 属性 model、prop、rules2. v-bind 与 v-model3. v-if 与 v-show4. v-for 循环语句5. 计算属性 computed6. 监视属性 watch7. 下拉框 el-select、el-option8. 自定义事件9. async与await实现异步调用 1. < el-form> 属性 model、prop、rule…

如何通过沉浸式翻译插件来高效阅读英文技术网站、英文文献

对于英语非母语的同学来说&#xff0c;阅读英文文档、英文技术博客、社区时经常会需要查询字典&#xff0c;打断了常规的阅读&#xff0c;效率极低&#xff0c;这时可以借助一款AI翻译插件&#xff08;沉浸式翻译&#xff0c;支持GPT翻译、谷歌翻译、百度翻译、有道翻译等&…

33.云原生之Istio管理任何七层流量

云原生专栏大纲 文章目录 Istio存在的问题Aeraki介绍Aeraki 的解决方案支持的协议支持的特性 安装AerakiAeraki教程采用 ServiceEntry 的 Demo 应用使用 Dubbo2Istio 对接 Dubbo 注册表 的 Demo 应用&#xff08;Interface 级流量治理&#xff09; Service Mesh 中有大量的七层…

【深度学习】SSD 神经网络:彻底改变目标检测

一、说明 Single Shot MultiBox Detector &#xff08;SSD&#xff09; 是一项关键创新&#xff0c;尤其是在物体检测领域。在 SSD 出现之前&#xff0c;对象检测主要通过两阶段过程执行&#xff0c;首先识别感兴趣的区域&#xff0c;然后将这些区域分类为对象类别。这种方法虽…

面试经典150题——快乐数

​"Success is not final, failure is not fatal: It is the courage to continue that counts." - Winston Churchill 1. 题目描述 2. 题目分析与解析 2.1 思路一 还是最简单的&#xff0c;模拟最直观的思路&#xff0c;就是进行一个while循环。比如&#xff1a;…