网站国际推广,海南腾雅网络科技有限公司,网络推广培训机构哪个比较好,网站价值如何评估背景需求#xff1a;
又到了开学季#xff0c;新的自主游戏#xff08;户外游戏#xff09;安排表出炉了。 这张是贴在美术活动室的安排表#xff0c;我需要转换成班级为单位的安排表#xff0c;便于批量制作周计划。 设计思路#xff1a;
1、一个班级每周轮到的一个场…
背景需求
又到了开学季新的自主游戏户外游戏安排表出炉了。 这张是贴在美术活动室的安排表我需要转换成班级为单位的安排表便于批量制作周计划。 设计思路
1、一个班级每周轮到的一个场地并连续5天周一到周五
如中2班第1周轮到美术游戏就是第1周周一、周二、周三、周四、周五都是玩美术游戏也就是说每个班级每周去一个场地并玩5天以前的游戏都是每个班级每周轮流5个场地因此这份代码与过去的代码有较大调整
2、总部中班有6个班级并有6种不同的户外游戏场地
从中2班开始每个班级每周轮到一个不同的游戏场地1个场地玩5天第二周从中3班开始每个班级每周轮到一个不同的游戏场地1个场地玩5天……
3、周次是每6周循环19周就是3次循环1周
周次显示第1-6周内每个班级按照斜线轮换的方式进行场地滚动6个班级6个场地循环36次后又恢复到中2班为始的状态。 我使用原来的大班游戏活动安排表发现并不能直接使用
【办公类-16-05-03】“2022下学期 大班游戏活动室排班表——班主任版20周”python 排班表系列_游戏排班-CSDN博客文章浏览阅读90次。【办公类-16-05-03】“2022下学期 大班游戏活动室排班表——班主任版20周”python 排班表系列_游戏排班https://blog.csdn.net/reasonsummer/article/details/129094382
通过修改原来的代码我花了一天做出了想要的结果。 代码展示 #20230217
2023学年下学期中班户外游戏安排6个班级 每周玩一个场地5天,第二周轮换 不跳节日)
作者阿夏
时间2024年2月19日
# import sys
# sys.path.append(/path/to/openpyxl)import sys
import random
import xlrd
import xlwt
from openpyxl import load_workbookimport timetime.sleep(2)# 班主任贴周计划用的按班级分类
weekweek19
# int(input(共有几周如19周 20\n))print(---------第1步制作每个班级的游戏的总表------)# 本学期大1大2大3大4大5大7大8大9班其中6班空缺一共有8个大班
gradenum[]
for g in range(2,8):gradenum.append(中{}班.format(g))
print(gradenum)
gradenum.insert(0, gradenum.pop())
# [2,3,4,5,6,7]
print(len(gradenum))# 8L[]# 班级
L1[]
L3[]
L2[]
L4[]
# 这里是8个活动室游戏活动室因为后面有递进所以把最后一个 08放到01前面这样摆放后面才会正确
# L3[美术游戏,角色游戏,建构游戏,表演游戏,沙水游戏,角色游戏]原始
L3gradenum# 生成8个班级8组活动室第1个元素不同
for i in range(0,len(gradenum)): # b L3.pop(0) # 在活动室游戏活动室列表L3中 删除 第1个元素 大1班 先删除08就是从01开始L3.append(b) # 在活动室游戏活动室列表L3最后 添加 第1个元素# print(L[0])L1.append(L3[0:len(gradenum)]) # 把不断变化的内容添加到L1 # 8个班级游戏活动室“基本元素“构成了L1列表[[01, 02, 03, 04, 05, 06, 07, 08], [02, 03, 04, 05, 06, 07, 08, 01], [03, 04, 05, 06, 07, 08, 01, 02], [04, 05, 06, 07, 08, 01, 02, 03], [05, 06,
# print(L1)# 每周6个班级基础模板6次 L班级
for b in range(4): # 把各班“游戏活动室基本元素8个”循环21次数量多一点便于后期提取内容for y in L1:for z in y: #抽取L1中的一组组内容 L1[0][01, 02, 03, 04, 05, 06, 07, 08]、L1[1][02, 03, 04, 05, 06, 07, 08, 01],# 在用 y提取L1[0]中的01, 02, 03, 04, 05, 06, 07, 08三个元素L.append(z) #把y提取的单个元素一个个加到列表里并且依次循环22次数量足够多
# print(L)
# 144
# print(len(L))
# [中2班, 中3班, 中4班, 中5班, 中6班, 中7班, 中3班, 中4班, 中5班, 中6班, 中7班, 中2班, 中4班, 中5班, 中6班, 中7班, 中2班, 中3班, 中5班, 中6班, 中7班, 中2班, 中3班, 中4班, 中6班, 中7班, 中2班, 中3班, 中4班, 中5班, 中7班, 中2班, 中3班, 中4班, 中5班, 中6班, 中2班, 中3班, 中4班, 中5班, 中6班, 中7班, 中3班, 中4班, 中
# 5班, 中6班, 中7班, 中2班, 中4班, 中5班, 中6班, 中7班, 中2班, 中3班, 中5班, 中6班, 中7班, 中2班, 中3班, 中4班, 中6班, 中7班, 中2班, 中3班, 中4班, 中5班, 中7
# 班, 中2班, 中3班, 中4班, 中5班, 中6班, 中2班, 中3班, 中4班, 中5班, 中6班, 中7班, 中3班, 中4班, 中5班, 中6班, 中7班, 中2班, 中4班, 中5班, 中6班, 中7班, 中2班
# , 中3班, 中5班, 中6班, 中7班, 中2班, 中3班, 中4班, 中6班, 中7班, 中2班, 中3班, 中4班, 中5班, 中7班, 中2班, 中3班, 中4班, 中5班, 中6班, 中2班, 中3班, 中4班, 中5班, 中6班, 中7班, 中3班, 中4班, 中5班, 中6班, 中7班, 中2班, 中4班, 中5班, 中6班, 中7班, 中2班, 中3班, 中5班, 中6班, 中7班, 中2班, 中3班, 中4班, 中6班, 中7班, 中2班, 中3班, 中4班, 中5班, 中7班, 中2班, 中3班, 中4班, 中5班, 中6班]# 10print(---------第2步六类游戏乘以19周------)
L4[美术游戏,角色游戏,建构游戏,表演游戏,沙水游戏,角色游戏]
L5[]
for v in range(weekweek): # 19周a for w in L4:for l in range(5):# 美术游戏中1班一周玩5次角色L5.append(w)
# print(L5)
# print(len(L5))
# # 570/5114# print(---------第2步如果一周有5天不考虑跳过假日------)# print({}.format(gradenum[num]))# 限制19周的
for i in range(0,int(len(L5)/5)):#第1周L2.append(L5[i*5:i*55])
# print(L2)
# print(len(L2))
# 114
# L2角色游戏等6类游戏的嵌套列表# # # # print(---------第3步如果每周需要跳过假日考虑跳过假日------)# # # # # 每周需要的天数 跳过节日.如第1周只有2天工作9月1-2日周四周五) 第3周周一是中秋节放假1天所以只有4个工作日
# # # # day[2,5,4,5,5,2,5,5,5,5,5,5,5,5,5,5,5,4,5,5,2]# # # # print(中{}班.format(gradenum[num]))
# # # # # 第1周
# # # # for d in range(0,1): # d索引数字
# # # # print(L[0:int(day[0])]) # 列表有8个活动室项目但只要其中5个周一到周五
# # # # L2.append(L[0:int(day[0])])
# # # # # 第2周开始
# # # # for d in range(1,len(day)): # 0-21
# # # # # print(d1)
# # # # LL[int(day[d-1]):] # day[0]2
# # # # L.append(L) # 将a安排到最后一个座位
# # # # print(L[0:int(day[d])])# 列表是八个循环我只要其中5个
# # # # L2.append(L[0:int(day[d])])# # # # 以下是跳过假日的最初的写法太长了研究上面的是2022.9.9-2023.1.17 共21周的假日安排print(---------第4-1步xls写入------)
workbook xlwt.Workbook()# 新建xls工作簿
sheet workbook.add_sheet(Sheet)# 新建xls工作簿的工作表的名字是sheet print(---------第4-2步第1行 写入 星期一等------)
weeks [班级,周次,星期一,星期二,星期三,星期四,星期五,]
# weeks[周次,美术游戏,角色游戏,建构游戏,表演游戏,沙水游戏,角色游戏]
week len(weeks) col0
for d in range(0, len(weeks)):sheet.write(0,col,weeks[d]) # 因为只有一行,所以就用有两种写法enumerate和这种col 1 print(---------第4-3步第2列写入周次------) # 第0列 写入“第1周、第2周、第3周……第21周
dates[]
# 制作第一列的所有文字
for i in range(1,int(weekweek1)):for r in range(len(L4)):n第{}周.format(%02d%i) # 用遍历方法获得“第1周、第2周、第21周”字样dates.append(n) # 添加到列表 s
print(dates)
print(len(dates))
#114 # 写入周次
row1
for d in range(0, len(dates)):sheet.write(row, 1, dates[d]) # 这里enumerate不能用,因为只有一列,所以就用row 1 print(---------第4-3步第1列写入班级------)
# 写入班级列 L班级列
row1
for h in range(0, len(L[:len(dates)])): # 只要班级列表的前114个 sheet.write(row,0,L[h]) # 因为只有一行,所以就用有两种写法enumerate和这种row 1 print(---------第4-5步第3-9列写入游戏内容一周五次相同------) row1
# 写入游戏内容列 L2游戏内容一周五个
for i in range((len(L2))): # 遍历21组[]的总数for col,item in enumerate(L2[i],2): # L2[i]表格内的内容item索引数字colsheet.write(row,col,item) # row,col,item 行1、列索引数字、内容表格内容 写入第一行第一列row 1
#print(---------第5步xls保存N份工作簿每份一页------)
try:workbook.save(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\20240218 下学期中班户外游戏一周五天相同班主任用.xls) # 新建保存 只能xlsprint(计划生成成功)
except e:print(失败...)print(e)# print(---------第6步把1份xls按照班级分类成N个不同的工作表内班主任贴周计划用------)
# https://blog.csdn.net/xo3ylAF9kGs/article/details/135856653# 切割成同表
import pandas as pd
import osdf pd.read_excel(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\20240218 下学期中班户外游戏一周五天相同班主任用.xls)writer pd.ExcelWriter(rC:\Users\jg2yXRZ\OneDrive\桌面\周计划\20240218 下学期中班户外游戏一周五天相同班主任用.xls)
df.to_excel(writer, sheet_nameSheet, indexFalse)for j in df[班级].unique():df[df[班级] j].to_excel(writer, sheet_namej户外游戏, indexFalse)writer.save()
运行结果 分表
1、6周一次循环 2、便于班主任了解本周户外游戏场地便于制作周计划 3、能够验证正确性 重点说明
我一直很困扰如何让一张EXCEL总表按照“班级”拆分成多个表格在一个EXCEL内
以下是解决方案包含拆分多个工作簿不在一个EXCEL内和拆分多个工作表在一个EXCEL内非常实用 强烈推荐
Python实现Excel拆分与合并-CSDN博客文章浏览阅读23次。在实际工作中我们经常会遇到各种表格的拆分与合并的情况。如果只是少量表手动操作还算可行但是如果是几十上百张表最好使用Python编程进行自动化处理。下面介绍两种拆分案例场景如何用Pandas实现Excel文件的拆分。按条件将Excel文件拆分到不同的工作簿假设现在有一个汇总表内部存储了整个年级的成绩数据。现在需要按照班级分类将不同班级的数据拆分到不同的工作簿中最终实现三年级总成绩...https://blog.csdn.net/xo3ylAF9kGs/article/details/135856653