背景需求
如果不换班,今年我应该是大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:\Users\jg2yXRZ\OneDrive\桌面\20250826四个年龄各类表格班本化\00一分园' 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:\Users\jg2yXRZ\OneDrive\桌面\20250826四个年龄各类表格班本化\01二分园' 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:\Users\jg2yXRZ\OneDrive\桌面\20250826四个年龄各类表格班本化\02总园中班' 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:\Users\jg2yXRZ\OneDrive\桌面\20250826四个年龄各类表格班本化\03总园大班' 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、6周合并 if week == 6: continue # 计算对应的周次(3周循环) cycle_week = (week - 1) % 3 + 1 week_key = f"第{cycle_week}周" for class_name in classes_game: # 获取完整的场地信息 venue_info = schedule_data_game[week_key][class_name] # 添加到数据列表 data_game.append({ "周次": f"第{week:02d}周" if week != 5 else "第05、06周", "班级": class_name, "活动区域": venue_info }) # 创建DataFrame df_game = pd.DataFrame(data_game) # 创建Excel文件 path = r'C:\Users\jg2yXRZ\OneDrive\桌面\20250826四个年龄各类表格班本化\00一分园' os.makedirs(path, exist_ok=True) # 确保目录存在 file_name_game = path + r"\一分园自主游戏活动安排表.xlsx" with pd.ExcelWriter(file_name_game, engine='openpyxl') as writer: # 1. 先写入总表 df_game.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_game: # 筛选该班级的数据 class_df = df_game[df_game['班级'] == 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