【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合)

发布时间:2026/8/3 20:29:31
【办公类-90-02】】20250215大班周计划四类活动的写法(分散运动、户外游戏、个别化综合)(基础列表采用读取WORD表格单元格数据,非采用切片组合) 背景需求:做了中班的四类活动安排表,我顺便给大班做一套【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次,点赞10次,收藏11次。【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))https://blog.csdn.net/reasonsummer/article/details/145626428?sharetype=blogdetailsharerId=145626428sharerefer=PCsharesource=reasonsummerspm=1011.2480.3001.8118编号代码复制总园中班大班的规则是差不多的1,运动从一周五个项目变成了一个项目2、游戏从一周五个项目变成了一个项目。3、个别化—和中班不同,只要写一个项目,而不是美工、图书、探索一、分散运动和中班的运动设计思路一样,只是5周循环,改成7周循环。但是它的场地不是按序递增,而是1475326.但是它也是有规律的,第二行是从第一行的索引3开始提取可以循环3次21周,49*3=147,但是实际20周20*5=140。因此,我需要 在总表里遍历,直接删除B列单元格里面有“第21周”的一行内容。''' 目的:2024年2月大班总部分散运动场地,每星期只有一条(各班滚动排) 大班是7个班,一个基础循环49天,循环3次21周,需要删除最后7天的内容 (一周一次,就不用考虑节假日了) 作者:阿夏、星火讯飞 时间:2024年2月15日15:30 ''' import sys import random import xlrd import xlwt from openpyxl import load_workbook import time import os, shutil # 一共20周 w = 20 # 五周一循环 xz = 7 # 提取元素数量,140个 zc=w*xz # 循环次数,多一点 y = 3 print(y) print('---------第1步:把8个运动场地循环21次(105元素组成的列表)------') # 本学期:总园大班只有5个 gradenum = ['1','2', '3', '4', '5', '6','7'] path = r"C:\Users\jg2yXRZ\OneDrive\桌面\202502 大班3类活动批量" # 新建一个”装N份word和PDF“的文件夹 sport = [] classroom = [] week = [] # 这里是8个运动场地,因为后面有递进,所以把最后一个 ,放到01前面,这样摆放后面才会正确) sportall = [ '场地1(主要材料:平衡车、三轮车、自行车、木桥等)', '场地4(主要材料:轮胎、跨栏、锣鼓、接力棒等) ', '场地7(主要材料:轮胎、安全垫、麻绳等) ', '场地5(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等) ', '场地3(主要材料:爬笼、树屋、沙漏、书包、铃铛等) ', '场地2(主要材料:弹力棉球、吸盘球、飞镖盘等) ', '场地6(主要材料:各类球、箩筐、百变迷宫架、马甲等)', ] # sport=[1,2,3,4,5] # 规律是,第一组12345,第二组23451 第三组34512 第三组45123,第五组51234 # ss = sportall * 20 sp=[] # 添加第1组 sp= sportall.copy() print(sport) # 添加第2-6组 for i in range(xz-1): # 总共需要添加4次,因为已经有一个初始组 sportall =sportall[3:] +sportall[:3] print(f"第{i + 1}次提取的元素: {sportall}") for x in sportall: sp.append(x) print(len(sp)) # 49次 sport=[] # # 手动复制3次 for x in range(y): # 7周一循环,最少3次=21周 for yy in sp: sport.append(yy) # 提取前140个,正好20周,每周7个场次 print("运用场地:", sport) print("运动场地长度:", len(sport)) # 140 classroom=[] for x in range(y): # 4 for i in range(len(gradenum)): for oo in range(xz): classroom.append(f'大{gradenum[i]}班') print(classroom) print(len(classroom)) # 140 week=[] for x in range(y): # 4 for o in range(xz): # x=5 for l in range(x * xz + 1, x * xz + xz + 1): ww = f'第{l:02}周' week.append(ww) week= week print(week) print(len(week)) # 制作表格 import openpyxl from openpyxl import Workbook # 创建一个工作簿对象 wb = Workbook() ws = wb.active ws.title = "总表" # 在A1写入“班级”,B1写入“周次”,C1写入“运动场地” ws['A1'] = '班级' ws['B1'] = '周次' ws['C1'] = '运动场地' # 从A2开始写入classroom,B2开始写入week,C2开始写入sport for i in range(len(classroom)): ws[f'A{i + 2}'] = classroom[i] ws[f'B{i + 2}'] = week[i] ws[f'C{i + 2}'] = sport[i] # 将总表内容按照班级拆分到同一个工作簿的不同工作表大,标签为“班级+分散运动安排” for grade in gradenum: ws_new = wb.create_sheet(title=f'大{grade}班分散运动安排') ws_new['A1'] = '班级' ws_new['B1'] = '周次' ws_new['C1'] = '运动场地' row = 2 for i in range(len(classroom)): if classroom[i].startswith(f'大{grade}'): ws_new[f'A{row}'] = classroom[i] ws_new[f'B{row}'] = week[i] ws_new[f'C{row}'] = sport[i] row += 1 # 保存到文件 output_file = path + r'\01 大班分散运动..xlsx' wb.save(output_file) print(f"Excel文件已保存到: {output_file}") # 删除最后一行“第21周” # 重新打开保存的文件以进行进一步操作 wb = openpyxl.load_workbook(output_file) # 遍历所有工作表,删除最后一行 for sheet_name in wb.sheetnames: ws = wb[sheet_name] max_row = ws.max_row if max_row 1: # 确保不是只有标题行的工作表 # 逆序循环删除倒数几行 ws.delete_rows(max_row) # ws.delete_rows(max_row - 0, 1)删除最后1行 21行消失 # ws.delete_rows(max_row - 1, 2)删除最后2行 # ws.delete_rows(max_row - 1, 1)删除第20周,19和21都在 # ws.delete_rows(max_row - 1, 3)删除第20周,19和21都在 # ws.delete_rows(max_row - 2, 3)删除最后3行,19、20、21消失 # 再次保存修改后的文件 wb.save(output_file) print(f"所有工作表的最后一行已删除,并保存到: {output_file}")结果展示一、总表总表里生成有21周二、班级表删除每个班级运动里面的最后一行如果想删除最后2行也就是想删除几行数字写第二个,最高行是删除数减去1如果想隔行删除,修改最高行减去的数字。二、游戏活动大班游戏活动就用大班运动的那个代码。把备注补上批量修改字母,文字