背景需求
如果不换班,今年我应该是大2班,但是统筹安排到小2班去了。为了新学期资料交接(学生信息,新老师一定有),我申请还是留在大班组群里
开学在即,大班组长发了本学期的“户外运动”“自主游戏”“个别化”“周计划”模版
组长发的是几周的总表,日常班主任写教案,要根据周次和班级查看本班活动内容,比较费时。特别是超过7周以后,是循环。
比如:运动表7周循环一次,到了12周,就需要自己点数应该用1-7周里面的哪一个表的内容(第5周的内容)
这就导致教师每周写计划都要人工判断、选择、有时候复制错了,也没有人验证贴的内容是否正确。
所以 从2022开始,我就长期研究如何批量生成班主任用的,周计划里面运动、游戏、个别化的内容。
存在问题:
1、内容分散成多个文件:
以前都是做成大班户外运动.xlsx、大班自主游戏.xlsx、大班个别化.xlsx,等多个文件。教师每次用都要打开三个工作簿,表单太多。
2、只生成中大班
我长期在总园带中班和大班,所以只做了中大班的周计划资料,没有考虑小班。本学期我带小班了,分园都是托班和小班,所以考虑把托小班的资料也做成班主任专用的版。
总结:
本次把四个年级的模版和安排表都找来,做一个有22个班级的包含三类活动的excle。
操作流程:
一、收集各年龄段安排表
1.收集托、小、中、大的各类活动安排表
二、分析填写内容
浏览托、小、中、大四个年龄段的周计划里要写内容
结果显示
托小中大都有户外运动、自主游戏、但托班没有个别化,中、大班的个别化有两种样式(特殊周5天都是室内美工室,其他周是2-3个活动室活动)
序号 |
年级 |
户外运动 |
自主游戏 |
个别化学习 |
1 |
托班 |
有 |
有 |
无 |
2 |
小班 |
有 |
有 |
有 |
3 |
中班 |
有 |
有 |
有2 |
4 |
大班 |
有 |
有 |
有2 |
三、制作代码
把每一份安排表(根据班级数,只有几周的内容)内容变成22周的样式EXCLE。
本学期22周,组长确认56周合并(第4周周日+第5周周一周二周三+第6周周四周五周六,共6天,需要用六天表格)、第18周5天(周一周二周三周日上班,为了凑满五天,周四位置写元旦节放假))
1.户外运动系列
(1)托班(带小班)
托班表格是这个样子的,靠我自己来提取轮换内容很复杂。所以我把这个表格输入Deepseek,让它来识别word里面的内容,提取运动列表。
再根据生成的xlsx内容继续AI编码调整
代码展示
'''
# Python,读取附件里的信息,做成excle表,共22周,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐
用以上AI关键词,将运动.docx导入deepseek,生成excle表格,4个班级,但5周循环
一分园托班
deepseek,阿夏
20250826
'''
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
import os
# 定义场地安排数据(从文档中提取)
schedule_data = {
"第1周": {
"托1班": "场地1(主要材料:平衡木、竹梯、球等)",
"托2班": "场地2(主要材料:爬笼、安全垫、拱门等)",
"小1班": "场地3(主要材料:滑滑梯、绳子、沙包等)",
"小2班": "场地4(主要材料:跨栏、障碍物等)"
},
"第2周": {
"托1班": "场地2(主要材料:爬笼、安全垫、拱门等)",
"托2班": "场地3(主要材料:滑滑梯、绳子、沙包等)",
"小1班": "场地4(主要材料:跨栏、障碍物等)",
"小2班": "场地5(主要材料:自行车、坡道、指示牌等)"
},
"第3周": {
"托1班": "场地3(主要材料:滑滑梯、绳子、沙包等)",
"托2班": "场地4(主要材料:跨栏、障碍物等)",
"小1班": "场地5(主要材料:自行车、坡道、指示牌等)",
"小2班": "场地1(主要材料:平衡木、竹梯、球等)"
},
"第4周": {
"托1班": "场地4(主要材料:跨栏、障碍物等)",
"托2班": "场地5(主要材料:自行车、坡道、指示牌等)",
"小1班": "场地1(主要材料:平衡木、竹梯、球等)",
"小2班": "场地2(主要材料:爬笼、安全垫、拱门等)"
},
"第5周": {
"托1班": "场地5(主要材料:自行车、坡道、指示牌等)",
"托2班": "场地1(主要材料:平衡木、竹梯、球等)",
"小1班": "场地2(主要材料:爬笼、安全垫、拱门等)",
"小2班": "场地3(主要材料:滑滑梯、绳子、沙包等)"
}
}
# 定义班级列表
classes = ["托1班", "托2班", "小1班", "小2班"]
# 创建数据列表
data = []
# 生成22周的数据(5周一个循环)
for week in range(1, 23):
# 处理第5、6周合并
if week == 6:
continue
week_key = f"第{(week-1) % 5 + 1}周" if week != 5 else "第5周"
# week_key = f"第{(week-1) % 5 + 1}周" # 直接按1-5周循环
for class_name in classes:
# 获取完整的场地信息(包括括号内容)
venue_info = schedule_data[week_key][class_name]
# 添加到数据列表
data.append({
"周次": f"第{week:02d}周" if week != 5 else "第05、06周",
# "周次": f"第{week:02d}周",
"班级": class_name,
"运动场地": venue_info
})
# 创建DataFrame
df = pd.DataFrame(data)
# 创建Excel文件
path = r'C:Usersjg2yXRZOneDrive桌面20250826四个年龄各类表格班本化0一分园'
file_name = path + r"一分园户外运动场地安排表.xlsx"
with pd.ExcelWriter(file_name, engine='openpyxl') as writer:
# 1. 先写入总表
df.to_excel(writer, sheet_name='总表', index=False)
# 获取工作簿
workbook = writer.book
# 设置总表格式
worksheet_total = writer.sheets['总表']
worksheet_total.column_dimensions['A'].width = 12
worksheet_total.column_dimensions['B'].width = 15
worksheet_total.column_dimensions['C'].width = 40
# 设置标题行样式
header_fill = PatternFill(start_color="E0E0E0", end_color="E0E0E0", fill_type="solid")
header_font = Font(bold=True)
for cell in worksheet_total[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_total.iter_rows(min_row=2, max_row=worksheet_total.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列(第3列):水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
# 2. 按班级拆分并创建单独的工作表
for class_name in classes:
# 筛选该班级的数据
class_df = df[df['班级'] == class_name].copy()
class_df = class_df.reset_index(drop=True)
# 写入单独的工作表
class_df.to_excel(writer, sheet_name=class_name, index=False)
# 设置工作表格式
worksheet_class = writer.sheets[class_name]
worksheet_class.column_dimensions['A'].width = 12
worksheet_class.column_dimensions['B'].width = 15
worksheet_class.column_dimensions['C'].width = 40
# 设置标题行样式
for cell in worksheet_class[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_class.iter_rows(min_row=2, max_row=worksheet_class.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列(第3列):水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
print(f"Excel文件已生成: {file_name}")
print(f"总表记录数: {len(df)} 条")
print(f"包含的工作表: 总表, {', '.join(classes)}")
print("对齐方式设置:A列和B列水平垂直居中,C列水平左对齐垂直居中")
拆分到个别班级
这个代码不是我以前的那种读取手写的运动列表的方式,而是直接从word里获取表格样式,根据文字提示的循环周次,比我直接写基本的样式快几百倍。
(2)二分园小班运动,
二分园运动表格样式与一分园运动表格完全相同(班级数都一样),所以直接AI
但是效果不好,所以只能把关键词全部写出来。
(上传运动安排表.docx)
Python,读取附件里的信息,做成excle表,共22周,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐)
一次成功
'''
# Python,读取附件里的信息,做成excle表,共22周,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐
用以上AI关键词,将运动.docx导入deepseek,生成excle表格,4个班级,但4周循环
二分园小班
deepseek,阿夏
20250826
'''
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
import os
# 定义二分园场地安排数据
schedule_data_2 = {
"第1周": {
"小3班": "场地1(主要材料:平衡木、轮胎、梯子、各种球等)",
"小4班": "场地2(主要材料:滑滑梯、车辆、沙包、投掷网等)",
"小5班": "场地3(主要材料:安全垫、钻爬玩具、呼啦圈等)",
"小6班": "场地4(主要材料:敏捷梯、彩虹桥、绳子、跳袋等)"
},
"第2周": {
"小3班": "场地2(主要材料:滑滑梯、车辆、沙包等)",
"小4班": "场地3(主要材料:安全垫、钻爬玩具、呼啦圈等)",
"小5班": "场地4(主要材料:敏捷梯、彩虹桥、绳子、跳袋等)",
"小6班": "场地1(主要材料:平衡木、轮胎、梯子、各种球等)"
},
"第3周": {
"小3班": "场地3(主要材料:安全垫、钻爬玩具、呼啦圈等)",
"小4班": "场地4(主要材料:敏捷梯、彩虹桥、绳子、跳袋等)",
"小5班": "场地1(主要材料:平衡木、轮胎、梯子、各种球等)",
"小6班": "场地2(主要材料:滑滑梯、车辆、沙包等)"
},
"第4周": {
"小3班": "场地4(主要材料:敏捷梯、彩虹桥、绳子、跳袋等)",
"小4班": "场地1(主要材料:平衡木、轮胎、梯子、各种球等)",
"小5班": "场地2(主要材料:滑滑梯、车辆、沙包等)",
"小6班": "场地3(主要材料:安全垫、钻爬玩具、呼啦圈等)"
}
}
# 定义班级列表(二分园)
classes_2 = ["小3班", "小4班", "小5班", "小6班"]
# 创建数据列表
data_2 = []
# 生成22周的数据(4周一个循环)
for week in range(1, 23):
# 处理第5、6周合并
if week == 6:
continue
week_key = f"第{(week-1) % 4 + 1}周"
for class_name in classes_2:
# 获取完整的场地信息(包括括号内容)
venue_info = schedule_data_2[week_key][class_name]
# 添加到数据列表
data_2.append({
"周次": f"第{week:02d}周" if week != 5 else "第05、06周",
"班级": class_name,
"运动场地": venue_info
})
# 创建DataFrame
df_2 = pd.DataFrame(data_2)
# 创建Excel文件
path = r'C:Usersjg2yXRZOneDrive桌面20250826四个年龄各类表格班本化1二分园'
os.makedirs(path, exist_ok=True) # 确保目录存在
file_name_2 = path + r"二分园户外运动场地安排表.xlsx"
with pd.ExcelWriter(file_name_2, engine='openpyxl') as writer:
# 1. 先写入总表
df_2.to_excel(writer, sheet_name='总表', index=False)
# 获取工作簿
workbook = writer.book
# 设置总表格式
worksheet_total = writer.sheets['总表']
worksheet_total.column_dimensions['A'].width = 12
worksheet_total.column_dimensions['B'].width = 15
worksheet_total.column_dimensions['C'].width = 45
# 设置标题行样式
header_fill = PatternFill(start_color="E0E0E0", end_color="E0E0E0", fill_type="solid")
header_font = Font(bold=True)
for cell in worksheet_total[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_total.iter_rows(min_row=2, max_row=worksheet_total.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
# 2. 按班级拆分并创建单独的工作表
for class_name in classes_2:
# 筛选该班级的数据
class_df = df_2[df_2['班级'] == class_name].copy()
class_df = class_df.reset_index(drop=True)
# 写入单独的工作表
class_df.to_excel(writer, sheet_name=class_name, index=False)
# 设置工作表格式
worksheet_class = writer.sheets[class_name]
worksheet_class.column_dimensions['A'].width = 12
worksheet_class.column_dimensions['B'].width = 15
worksheet_class.column_dimensions['C'].width = 45
# 设置标题行样式
for cell in worksheet_class[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_class.iter_rows(min_row=2, max_row=worksheet_class.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
print(f"二分园Excel文件已生成: {file_name_2}")
print(f"总表记录数: {len(df_2)} 条")
print(f"包含的工作表: 总表, {', '.join(classes_2)}")
print("对齐方式设置:A列和B列水平垂直居中,C列水平左对齐垂直居中")
4周循环
(3)总园中班
中班的运动表就是很熟悉的矩阵表格样式,场地斜着走。本次是一周轮一个项目,不像以前一周5个项目的轮,所以每周只有一条内容
同样用刚才的关键词试试
它也写出具有关键信息的列表
代码可用
'''
# Python,读取附件里的信息,做成excle表,共22周,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐
用以上AI关键词,将运动.docx导入deepseek,生成excle表格,表格是矩阵样式每天变化,有循环。6个班级6周循环
总园中班
deepseek,阿夏
20250826
'''
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
import os
# 定义中班场地安排数据(从文档中提取)
schedule_data_middle = {
"第1周": {
"中1班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"中2班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"中3班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"中4班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"中5班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"中6班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)"
},
"第2周": {
"中1班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"中2班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"中3班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"中4班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"中5班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"中6班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)"
},
"第3周": {
"中1班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"中2班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"中3班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"中4班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"中5班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"中6班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)"
},
"第4周": {
"中1班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"中2班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"中3班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"中4班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"中5班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"中6班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)"
},
"第5周": {
"中1班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"中2班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"中3班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"中4班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"中5班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"中6班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)"
},
"第6周": {
"中1班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"中2班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"中3班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"中4班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"中5班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"中6班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)"
}
}
# 定义班级列表(中班)
classes_middle = ["中1班", "中2班", "中3班", "中4班", "中5班", "中6班"]
# 创建数据列表
data_middle = []
# 生成22周的数据(6周一个循环)
for week in range(1, 23):
# 处理第5、6周合并
if week == 6:
continue
week_key = f"第{(week-1) % 6 + 1}周" if week != 5 else "第5周"
for class_name in classes_middle:
# 获取完整的场地信息(包括括号内容)
venue_info = schedule_data_middle[week_key][class_name]
# 添加到数据列表
data_middle.append({
"周次": f"第{week:02d}周" if week != 5 else "第05、06周",
"班级": class_name,
"运动场地": venue_info
})
# 创建DataFrame
df_middle = pd.DataFrame(data_middle)
# 创建Excel文件
path = r'C:Usersjg2yXRZOneDrive桌面20250826四个年龄各类表格班本化2总园中班'
os.makedirs(path, exist_ok=True) # 确保目录存在
file_name_middle = path + r"总园中班户外运动场地安排表.xlsx"
with pd.ExcelWriter(file_name_middle, engine='openpyxl') as writer:
# 1. 先写入总表
df_middle.to_excel(writer, sheet_name='总表', index=False)
# 获取工作簿
workbook = writer.book
# 设置总表格式
worksheet_total = writer.sheets['总表']
worksheet_total.column_dimensions['A'].width = 12
worksheet_total.column_dimensions['B'].width = 15
worksheet_total.column_dimensions['C'].width = 50
# 设置标题行样式
header_fill = PatternFill(start_color="E0E0E0", end_color="E0E0E0", fill_type="solid")
header_font = Font(bold=True)
for cell in worksheet_total[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_total.iter_rows(min_row=2, max_row=worksheet_total.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
# 2. 按班级拆分并创建单独的工作表
for class_name in classes_middle:
# 筛选该班级的数据
class_df = df_middle[df_middle['班级'] == class_name].copy()
class_df = class_df.reset_index(drop=True)
# 写入单独的工作表
class_df.to_excel(writer, sheet_name=class_name, index=False)
# 设置工作表格式
worksheet_class = writer.sheets[class_name]
worksheet_class.column_dimensions['A'].width = 12
worksheet_class.column_dimensions['B'].width = 15
worksheet_class.column_dimensions['C'].width = 50
# 设置标题行样式
for cell in worksheet_class[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_class.iter_rows(min_row=2, max_row=worksheet_class.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
print(f"总园中班Excel文件已生成: {file_name_middle}")
print(f"总表记录数: {len(df_middle)} 条")
print(f"包含的工作表: 总表, {', '.join(classes_middle)}")
print("对齐方式设置:A列和B列水平垂直居中,C列水平左对齐垂直居中")
(4)总部大班运动
也是矩阵表,6周循环
'''
# Python,读取附件里的信息,做成excle表,共22周,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐
用以上AI关键词,将运动.docx导入deepseek,生成excle表格,表格是矩阵样式每天变化,有循环。6个班级6周循
总部大班
deepseek,阿夏
20250826
'''
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
import os
# 定义大班场地安排数据(从文档中提取)
schedule_data_senior = {
"第1周": {
"大1班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"大2班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"大3班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"大4班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"大5班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"大6班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)"
},
"第2周": {
"大1班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"大2班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"大3班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"大4班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"大5班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"大6班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)"
},
"第3周": {
"大1班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"大2班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"大3班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"大4班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"大5班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"大6班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)"
},
"第4周": {
"大1班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"大2班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"大3班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"大4班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"大5班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"大6班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)"
},
"第5周": {
"大1班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"大2班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"大3班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"大4班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"大5班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)",
"大6班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)"
},
"第6周": {
"大1班": "场地2(主要材料:竹梯、三脚架、长凳、轮胎、安全垫等)",
"大2班": "场地3(主要材料:小足球、箩筐、百变迷宫架、马甲等)",
"大3班": "场地4(主要材料:安全垫、爬笼、树屋、麻绳等)",
"大4班": "场地5(主要材料:弹力棉球、吸盘球、飞镖盘、滑滑梯等)",
"大5班": "场地6(主要材料:轮胎、跨栏、锣鼓、接力棒等)",
"大6班": "场地1(主要材料:平衡车、三轮车、自行车、木桥等)"
}
}
# 定义班级列表(大班)
classes_senior = ["大1班", "大2班", "大3班", "大4班", "大5班", "大6班"]
# 创建数据列表
data_senior = []
# 生成22周的数据(6周一个循环)
for week in range(1, 23):
# 处理第5、6周合并
if week == 6:
continue
week_key = f"第{(week-1) % 6 + 1}周" if week != 5 else "第5周"
for class_name in classes_senior:
# 获取完整的场地信息(包括括号内容)
venue_info = schedule_data_senior[week_key][class_name]
# 添加到数据列表
data_senior.append({
"周次": f"第{week:02d}周" if week != 5 else "第05、06周",
"班级": class_name,
"运动场地": venue_info
})
# 创建DataFrame
df_senior = pd.DataFrame(data_senior)
# 创建Excel文件
path = r'C:Usersjg2yXRZOneDrive桌面20250826四个年龄各类表格班本化3总园大班'
os.makedirs(path, exist_ok=True) # 确保目录存在
file_name_senior = path + r"总园大班户外运动场地安排表.xlsx"
with pd.ExcelWriter(file_name_senior, engine='openpyxl') as writer:
# 1. 先写入总表
df_senior.to_excel(writer, sheet_name='总表', index=False)
# 获取工作簿
workbook = writer.book
# 设置总表格式
worksheet_total = writer.sheets['总表']
worksheet_total.column_dimensions['A'].width = 12
worksheet_total.column_dimensions['B'].width = 15
worksheet_total.column_dimensions['C'].width = 50
# 设置标题行样式
header_fill = PatternFill(start_color="E0E0E0", end_color="E0E0E0", fill_type="solid")
header_font = Font(bold=True)
for cell in worksheet_total[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_total.iter_rows(min_row=2, max_row=worksheet_total.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
# 2. 按班级拆分并创建单独的工作表
for class_name in classes_senior:
# 筛选该班级的数据
class_df = df_senior[df_senior['班级'] == class_name].copy()
class_df = class_df.reset_index(drop=True)
# 写入单独的工作表
class_df.to_excel(writer, sheet_name=class_name, index=False)
# 设置工作表格式
worksheet_class = writer.sheets[class_name]
worksheet_class.column_dimensions['A'].width = 12
worksheet_class.column_dimensions['B'].width = 15
worksheet_class.column_dimensions['C'].width = 50
# 设置标题行样式
for cell in worksheet_class[1]:
cell.fill = header_fill
cell.font = header_font
cell.alignment = Alignment(horizontal='center', vertical='center')
# 设置所有单元格对齐方式
for row in worksheet_class.iter_rows(min_row=2, max_row=worksheet_class.max_row, min_col=1, max_col=3):
for col_idx, cell in enumerate(row, 1):
if col_idx == 3: # C列:水平左对齐,垂直居中
cell.alignment = Alignment(horizontal='left', vertical='center')
else: # A列和B列:水平居中,垂直居中
cell.alignment = Alignment(horizontal='center', vertical='center')
print(f"总园大班Excel文件已生成: {file_name_senior}")
print(f"总表记录数: {len(df_senior)} 条")
print(f"包含的工作表: 总表, {', '.join(classes_senior)}")
print("对齐方式设置:A列和B列水平垂直居中,C列水平左对齐垂直居中")
由此,所有的户外运动22周的内容都变成班级EXCLE了。
2.自主游戏系列
用AI编程读取word附件内容,又快又好。,继续用它做自主游戏表。
(1)一分园托班
一分园自主游戏托班是合并的,3周都是自主游戏,小班是拆分每周1个,3周轮流的
AI精准识别了每周的各班活动内容
出现问题,继续修改,
修改成功:
'''
Python,读取附件里的信息,做成excle表,共22周,托1托2的第1-3周都是自主游戏,其中5、6周合并一周,第一列是周次(第01周,第02周补0)第二列是班级,第三列是运动场地(周一到周五只写一个场地)我要完整的场地描述,然后按班级拆分表格,表名是班级。最后ABC列都是垂直居中,但AB是水平居中,C是垂直左对齐)
deepseek,阿夏,4个班级三周轮回
一分园托小班
20250826
'''
import pandas as pd
from openpyxl import Workbook
from openpyxl.styles import Font, Alignment, PatternFill
import os
# 定义一分园自主游戏活动安排数据
schedule_data_game = {
"第1周": {
"托1班": "自主游戏",
"托2班": "自主游戏",
"小1班": "区域2(主要材料:沙、水、泥、管道、工具、辅助材料等)",
"小2班": "区域3(主要材料:服装、道具、器械、辅助材料等)"
},
"第2周": {
"托1班": "自主游戏",
"托2班": "自主游戏",
"小1班": "区域1(主要材料:单元积木、辅助材料等)",
"小2班": "区域2(主要材料:沙、水、泥、管道、工具、辅助材料等)"
},
"第3周": {
"托1班": "自主游戏",
"托2班": "自主游戏",
"小1班": "区域3(主要材料:服装、道具、器械、辅助材料等)",
"小2班": "区域1(主要材料:单元积木、辅助材料等)"
}
}
# 定义班级列表
classes_game = ["托1班", "托2班", "小1班", "小2班"]
# 创建数据列表
data_game = []
# 生成22周的数据(3周一个循环)
for week in range(1, 23):
# 处理第5
© 版权声明
文章版权归作者所有,未经允许请勿转载。
相关文章
暂无评论...