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

背景需求

上学期的周安排里,每班每周的自主游戏会轮到多个不同的内容

因此在每周的自主游戏观察有2次记录,观察的项目可以写不一样的,

如一位老师写沙水游戏,另一位写表演游戏

本学期,中班的自主游戏全部是户外的,并且每班每周5天玩同一个内容。

因此《自主游戏观察记录表》的记录内容就会改变------

1、每周2篇记录都是同一个项目(如都是观察"建构")

2、必须是户外游戏的内容(以前都是室内观察的内容)

为了更好的便于班主任进行游戏观察记录,我想预先就制作一个包含本班轮到的项目和场地的提示说明。

参考资料

【办公类-19-03】办公中的思考------Python批量制作word单元格照片和文字(小照片系列)-CSDN博客文章浏览阅读826次。【办公类-19-03】办公中的思考------Python批量制作word单元格照片和文字(小照片系列)https://blog.csdn.net/reasonsummer/article/details/132747236

素材准备:

一、原始模板示例及需要修改的红色部分

1、删除其中的观察文字部分

2、需要替换的包括:周次、年级、班级号、教师1、教师2、

3、主要补充内容:在游戏观察部分增加"((游戏名称)(游戏场地))",1周内的两次游戏观察内容是一样的

二、自主游戏观察记录模板

1、把相关内容改成{{XXX}}的样式

2、标题2行,所以导致表格延伸到第2页,这个需要反复测试,调整框架,确保每周的格子都在一页上。

三、EXCEL的内容

代码展示:

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

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) #递归删除文件夹,即:删除非空文件夹

终端显示(主要步骤)

生成结果:

用这样的方法,可以快速生成一份本学期本班专用的《自主游戏观察记录表》。

相关推荐
quikai19817 分钟前
python练习第一组
开发语言·python
谷粒.17 分钟前
测试数据管理难题的7种破解方案
运维·开发语言·网络·人工智能·python
寒山李白33 分钟前
关于Python版本与supervisor版本的兼容性
windows·python·supervisord
梨落秋霜1 小时前
Python入门篇【基础语法】
开发语言·python
ada7_1 小时前
LeetCode(python)——543.二叉树的直径
数据结构·python·算法·leetcode·职场和发展
小白学大数据1 小时前
Python 多线程爬取社交媒体品牌反馈数据
开发语言·python·媒体
HAPPY酷2 小时前
压缩文件格式实战速查表 (纯文本版)
python
祝余Eleanor2 小时前
Day 31 类的定义和方法
开发语言·人工智能·python·机器学习
背心2块钱包邮2 小时前
第6节——微积分基本定理(Fundamental Theorem of Calculus,FTC)
人工智能·python·机器学习·matplotlib
larance2 小时前
修改jupyterlab 默认路径
python