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

背景需求:

做了中班的四类活动安排表,我顺便给大班做一套

【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室))-CSDN博客文章浏览阅读874次,点赞10次,收藏11次。【办公类-90-01】】20250213中班周计划四类活动的写法(分散运动、户外游戏、个别化(美工室图书吧探索室)) https://blog.csdn.net/reasonsummer/article/details/145626428?sharetype=blogdetail&sharerId=145626428&sharerefer=PC&sharesource=reasonsummer&spm=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 - 1, 1)删除第20周,19和21都在
        # ws.delete_rows(max_row - 1, 2)删除第20周和21,19在

# 再次保存修改后的文件
wb.save(output_file)
print(f"所有工作表的最后一行已删除,并保存到: {output_file}")

      

结果展示

一、总表

总表里生成有21周

二、班级表

删除每个班级运动里面的最后一行

如果想删除最后2行

也就是想删除几行数字写第二个,最高行是删除数减去1

如果想隔行删除,修改最高行减去的数字。

二、游戏活动

大班游戏活动就用大班运动的那个代码。把备注补上

批量修改字母,文字

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值