【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)

背景需求:

又到了开学季,新的活动室安排表出炉了。

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第1张图片

为了贴在美术活动室的安排表,我需要转换成班级为单位的安排表,便于批量制作周计划。

主要用途——填写周计划中的特色美术活动室(汉字大写)

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第2张图片

重点说明:

1、通过观察图片,我发现无论大小美工室,都是前1-14周是2周一个班级,15-19周1周一个班级。

2、需要把周次用汉字表示(需要加上01“一”的数字,这样才不会按照汉字首字母排序)

代码展示:

 # -- coding:utf-8 --
'''
大小美工室,周次合并 中班 7个班级(包含一分园的中1)
作者:阿夏
时间:2024年2月18日

'''
import xlrd
import xlwt
from openpyxl import load_workbook

classroom=[]
for a in range(1,8):
    for c in range(2):
        classroom .append('中{}班'.format(a))
for a in range(1,6):   
    classroom .append('中{}班'.format(a))
# print(classroom)
# print(len(classroom))

# classroom=[]
for a in range(2,8):
    for c in range(2):
        classroom .append('中{}班'.format(a))
for c in range(2):
    classroom .append('中1班')
for a in range(2,7):   
    classroom .append('中{}班'.format(a))
print(classroom)
print(len(classroom))
# 38

week=[]
for y in range(2):
    for b1 in ['01一','02二','03三','04四','05五','06六','07七','08八','09九','10十','11十一','12十二','13十三','14十四','15十五','16十六','17十七','18十八','19十九']:
        week.append('第{}周'.format(b1))
print(week)
print(len(week))
# 38

big=[]
for f in classroom:
    for d in range(len(week)):    
        if classroom[d]==f:
            bigbig='{} {}'.format(f,week[d])
            big.append(bigbig)
big=sorted(set(list(big)))
print(big)
print(len(big))

# 在第一周前面加上01 ,进行从小到大排序,不加01,会按照一、二的拼音字母排序

# ['中1班 第01一周', '中1班 第02二周', '中1班 第13十三周', '中1班 第14十四周', '中1班 第15十五周', '中2班 第01一周', '中2班 第02二周', '中2班 第03三周', '中2班 第04四周', '中2班 第15十五周', '中2班 第16十六周', '中3班 第03三周', '中3班 第04四周', '中3班 第05五周', '中3班 第06六周', '中3班 第16十六周', '中3班 第17十七周', '中4班 第05五周', '中4班 第06六周', '中4班 第07七周', '中4班 第08八周', '中4班 第17十七周', '中4班 第18十八周', '中5班 第07七周', '中5班 第08八周', '中5班 第09九周', '中5班 第10十周', '中5班 第18十八周', '中5班 第19十九周', '中6班 第09九周', '中6班 第10十周', '中6班 第11十一周', '中6班 第12十二周', 
# '中6班 第19十九周', '中7班 第11十一周', '中7班 第12十二周', '中7班 第13十三周', '中7班 第14十四周']


k=[]
kk=[]
for g in classroom:
    k.clear()
    for x in range(len(big)):
    # print(big[x])
        if big[x][:3]==g:
        # if big[x][:3]==g:
            # print(big[x][3:])
            if len(big[x])==10:                #    第十七周 一共有10个字符
                k.append(big[x][7:9]) # 汉字
                # k.append(big[x][5:7]) # 数字
            else:
                k.append(big[x][7:8]) # 汉字
                # k.append(big[x][6:7]) # 数字

    print(k)
    result = '、'.join(k)
    print(result)
    kk.append('大小美工室 {} 第{}周“快乐玩色彩”专用活动室'.format(g,result))

kk=sorted(set(list(kk)))
print(kk)

print(len(kk))

# ['大小美工室 中1班 第一、二、十三、十四、十五周', '大小美工室 中2班 第一、二、三、四、十五、十六周', '大小美工室 中3班 第三、四、五、六、十六、十七周', '大小美工室 中4班 第五、六、七、八、十七、十八周', '大 
# 小美工室 中5班 第七、八、九、十、十八、十九周', '大小美工室 中6班 第九、十、十一、十二、十九周', '大小美工室 中7班 第十一、十二、十三、十四周']

# ['大小美工室 中1班,第01、02、13、14、15周', '大小美工室 中2班,第01、02、03、04、15、16周', '大小美工室 中3班,第03、04、05、06、16、17周', '大小美工室 中4班,第05、06、07、08、17、18周', '大小美工室 中5班,第07、08、09、10、18、19周', '大小美工室 中6班,第09、10、11、12、19周', '大小美工室 中7班,第11、12、13、14周']

for z in kk:
    print(z)

# 汉字版本
# 大小美工室 中1班 第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第一、二、三、四、十五、十六周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第三、四、五、六、十六、十七周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第五、六、七、八、十七、十八周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第七、八、九、十、十八、十九周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第九、十、十一、十二、十九周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第十一、十二、十三、十四周”快乐玩色彩“专用活动室
    
    
    
#  数字版本   
# 大小美工室 中1班 第1、2、13、14、15周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第1、2、3、4、15、16周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第3、4、5、6、16、17周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第5、6、7、8、17、18周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第7、8、9、0、18、19周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第9、0、11、12、19周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第11、12、13、14周”快乐玩色彩“专用活动室
    
print('---------第4步:xls写入)------') 
workbook = xlwt.Workbook()# 新建xls工作簿
sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet 

# 第0列 写入“第1周、第2周、第3周……第21周


weeks=['内容','班级','快乐玩色彩”专用活动室汉字写法']
week = len(weeks) 

col=0
for d in range(0, len(weeks)):
    sheet.write(0,col,weeks[d])         # 因为只有一行,所以就用有两种写法(enumerate和这种)
    col+= 1  

# 第B2开始写入 活动室内容
row = 1     # 第2行
for i in range(len(kk)):         # 遍历21组[]的总数
    sheet.write(row,0,kk[i][:5])    #  '大小美工室'
    sheet.write(row,1,kk[i][6:9])    #  '中X班'
    sheet.write(row,2,kk[i][10:])#  第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
    row += 1   

print('---------第5步:xls保存N份工作簿(每份一页)------')             
# try:
workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\周计划\中班专用活动室汉字写法.xls")    # 新建保存 只能xls
print('计划生成成功')

运行结果

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第3张图片

# 汉字版本
# 大小美工室 中1班 第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第一、二、三、四、十五、十六周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第三、四、五、六、十六、十七周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第五、六、七、八、十七、十八周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第七、八、九、十、十八、十九周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第九、十、十一、十二、十九周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第十一、十二、十三、十四周”快乐玩色彩“专用活动室
    
#  数字版本   

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第4张图片


# 大小美工室 中1班 第1、2、13、14、15周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第1、2、3、4、15、16周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第3、4、5、6、16、17周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第5、6、7、8、17、18周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第7、8、9、0、18、19周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第9、0、11、12、19周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第11、12、13、14周”快乐玩色彩“专用活动室。

以中4班为例

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第5张图片

最后结果: 

大小美工室 中4班 第五、六、七、八、十七、十八周”快乐玩色彩“专用活动室

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第6张图片

最后保存在EXCEL里,便于老师们直接复制

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第7张图片

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第8张图片

虽然只是这么一个小小的合并说明,但是代码也写的很长很长。

-----------------------------------------------------------------------------------------------------

同理,制作大班的大小美工室

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第9张图片

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第10张图片【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第11张图片

大班和中班一样都是7个班级,所以结果完全相似

把中变成大、把包保存文件的名字和位置进行修改

 # -- coding:utf-8 --
'''
大小美工室,周次合并 大班7个班级
作者:阿霞
时间:2024年2月18日

'''
import xlrd
import xlwt
from openpyxl import load_workbook

classroom=[]
for a in range(1,8):
    for c in range(2):
        classroom .append('大{}班'.format(a))
for a in range(1,6):   
    classroom .append('大{}班'.format(a))
# print(classroom)
# print(len(classroom))

# classroom=[]
for a in range(2,8):
    for c in range(2):
        classroom .append('大{}班'.format(a))
for c in range(2):
    classroom .append('大1班')
for a in range(2,7):   
    classroom .append('大{}班'.format(a))
print(classroom)
print(len(classroom))
# 38

week=[]
for y in range(2):
    for b1 in ['01一','02二','03三','04四','05五','06六','07七','08八','09九','10十','11十一','12十二','13十三','14十四','15十五','16十六','17十七','18十八','19十九']:
        week.append('第{}周'.format(b1))
print(week)
print(len(week))
# # 38

big=[]
for f in classroom:
    for d in range(len(week)):    
        if classroom[d]==f:
            bigbig='{} {}'.format(f,week[d])
            big.append(bigbig)
big=sorted(set(list(big)))
print(big)
print(len(big))

# 在第一周前面加上01 ,进行从小到大排序,不加01,会按照一、二的拼音字母排序

# ['中1班 第01一周', '中1班 第02二周', '中1班 第13十三周', '中1班 第14十四周', '中1班 第15十五周', '中2班 第01一周', '中2班 第02二周', '中2班 第03三周', '中2班 第04四周', '中2班 第15十五周', '中2班 第16十六周', '中3班 第03三周', '中3班 第04四周', '中3班 第05五周', '中3班 第06六周', '中3班 第16十六周', '中3班 第17十七周', '中4班 第05五周', '中4班 第06六周', '中4班 第07七周', '中4班 第08八周', '中4班 第17十七周', '中4班 第18十八周', '中5班 第07七周', '中5班 第08八周', '中5班 第09九周', '中5班 第10十周', '中5班 第18十八周', '中5班 第19十九周', '中6班 第09九周', '中6班 第10十周', '中6班 第11十一周', '中6班 第12十二周', 
# '中6班 第19十九周', '中7班 第11十一周', '中7班 第12十二周', '中7班 第13十三周', '中7班 第14十四周']


k=[]
kk=[]
for g in classroom:
    k.clear()
    for x in range(len(big)):
    # print(big[x])
        if big[x][:3]==g:
        # if big[x][:3]==g:
            # print(big[x][3:])
            if len(big[x])==10:                #    第十七周 一共有10个字符
                k.append(big[x][7:9]) # 汉字
                # k.append(big[x][5:7]) # 数字
            else:
                k.append(big[x][7:8]) # 汉字
                # k.append(big[x][6:7]) # 数字

    print(k)
    result = '、'.join(k)
    print(result)
    kk.append('大小美工室 {} 第{}周“快乐玩色彩”专用活动室'.format(g,result))

kk=sorted(set(list(kk)))
print(kk)

print(len(kk))

# ['大小美工室 中1班 第一、二、十三、十四、十五周', '大小美工室 中2班 第一、二、三、四、十五、十六周', '大小美工室 中3班 第三、四、五、六、十六、十七周', '大小美工室 中4班 第五、六、七、八、十七、十八周', '大 
# 小美工室 中5班 第七、八、九、十、十八、十九周', '大小美工室 中6班 第九、十、十一、十二、十九周', '大小美工室 中7班 第十一、十二、十三、十四周']

# ['大小美工室 中1班,第01、02、13、14、15周', '大小美工室 中2班,第01、02、03、04、15、16周', '大小美工室 中3班,第03、04、05、06、16、17周', '大小美工室 中4班,第05、06、07、08、17、18周', '大小美工室 中5班,第07、08、09、10、18、19周', '大小美工室 中6班,第09、10、11、12、19周', '大小美工室 中7班,第11、12、13、14周']

for z in kk:
    print(z)

# 汉字版本
# 大小美工室 中1班 第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第一、二、三、四、十五、十六周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第三、四、五、六、十六、十七周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第五、六、七、八、十七、十八周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第七、八、九、十、十八、十九周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第九、十、十一、十二、十九周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第十一、十二、十三、十四周”快乐玩色彩“专用活动室
    
    
    
#  数字版本   
# 大小美工室 中1班 第1、2、13、14、15周”快乐玩色彩“专用活动室
# 大小美工室 中2班 第1、2、3、4、15、16周”快乐玩色彩“专用活动室
# 大小美工室 中3班 第3、4、5、6、16、17周”快乐玩色彩“专用活动室
# 大小美工室 中4班 第5、6、7、8、17、18周”快乐玩色彩“专用活动室
# 大小美工室 中5班 第7、8、9、0、18、19周”快乐玩色彩“专用活动室
# 大小美工室 中6班 第9、0、11、12、19周”快乐玩色彩“专用活动室
# 大小美工室 中7班 第11、12、13、14周”快乐玩色彩“专用活动室
    
print('---------第4步:xls写入)------') 
workbook = xlwt.Workbook()# 新建xls工作簿
sheet = workbook.add_sheet("Sheet")# 新建xls工作簿的工作表的名字是sheet 

# 第0列 写入“第1周、第2周、第3周……第21周


weeks=['内容','班级','快乐玩色彩”专用活动室汉字写法']
week = len(weeks) 

col=0
for d in range(0, len(weeks)):
    sheet.write(0,col,weeks[d])         # 因为只有一行,所以就用有两种写法(enumerate和这种)
    col+= 1  

# 第B2开始写入 活动室内容
row = 1     # 第2行
for i in range(len(kk)):         # 遍历21组[]的总数
    sheet.write(row,0,kk[i][:5])    #  '大小美工室'
    sheet.write(row,1,kk[i][6:9])    #  '中X班'
    sheet.write(row,2,kk[i][10:])#  第一、二、十三、十四、十五周”快乐玩色彩“专用活动室
    row += 1   

print('---------第5步:xls保存N份工作簿(每份一页)------')             
# try:
workbook.save(r"C:\Users\jg2yXRZ\OneDrive\桌面\周计划\大班\03贴周计划-专用活动室周次汉字.xls")    # 新建保存 只能xls
print('计划生成成功')

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第12张图片【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第13张图片

【办公类-16-07-01】“2023下学期 周计划-美术专用活动室写法”(python 排班表系列)_第14张图片

大班7个班级和中班7个班级完全相同

你可能感兴趣的:(Python,python)