【办公类-54-03】20240828班级点名册模版(双休国定假涂成灰色)2024学年第一学期

背景需求:

每学期开学要做5个月的点名册

每天记录来园人员的符号是“○”和“|”,遇到双休日,为了避免写错,就要手动划线,大量的线条,看上去不美观,而且会影响财务老师统计。

在营养员的每周人数统计表里,我尝试了节日、假日的格子涂上灰色。用同样的方法设计202409-202501的点名表,确保每个假日、双休日,都被填上灰色。
【办公类-54-02】20240827营养员《每周人数统计表》(双休国定假涂成灰色)-CSDN博客文章浏览阅读1.3k次,点赞41次,收藏16次。【办公类-54-02】20240827营养员《每周人数统计表》(双休国定假涂成灰色)https://blog.csdn.net/reasonsummer/article/details/141610345

设计过程用了5个小时,今天来不及具体写,先占个坑位。

代码展示

''' 把原来的点名表标签、日期更改,根据日期添加灰色列 星火讯飞阿夏 20240828 ''' '''1、把原来的点名表标签、日期月份更改''' # ˼· # ��ȡÿһ����ǩ���ѱ�ǩֵ�����޸� # ��W3�ij������б�������� # �ѱ�ǩֵ��-2������д��AB3 import openpyxl from datetime import datetime, timedelta import time import openpyxl from openpyxl.styles import PatternFill import openpyxl from openpyxl.styles import PatternFill path=r'C:\Users\jg2yXRZ\OneDrive\桌面\开学点名册批量制作' # ��ȡ123.xlsx�ļ� workbook = openpyxl.load_workbook(path+r'\01原始点名表.xlsx') print('1.原版点名册标签日期更改') # 读取所有工作表标签名称 sheet_names = workbook.sheetnames print(sheet_names) # ['2上', '2下', '3上', '3下', '4上', '4下', '5上', '5下', '6上', '6下'] # 获取新日期 from datetime import datetime, timedelta start_date = datetime(2024, 9, 1) end_date = datetime(2025, 1, 31) date_set = set() while start_date <= end_date: date_set.add(start_date.strftime('%Y-%m')) start_date += timedelta(days=1) date_list =[date for date in list(sorted(date_set)) for _ in range(2)]# 去掉重复,排序 print(date_list) # ['2024-09', '2024-09', '2024-10', '2024-10', '2024-11', '2024-11', '2024-12', '2024-12', '2025-01', '2025-01'] # 组合新的标签名字 new_sheet_names = [] for n in range(len(sheet_names)): new_name = date_list[n]+sheet_names[n][-1:] new_sheet_names.append(new_name) print(new_sheet_names) # ['2024-09上', '2024-09下', '2024-10上', '2024-10下', '2024-11上', '2024-11下', '2024-12上', '2024-12下', '2025-01上', '2025-01下'] # 替换标签 for old_name, new_name in zip(sheet_names, new_sheet_names): workbook[old_name].title = new_name print('2.更改日期和双休日灰色') sheet_names = workbook.sheetnames n=0 # ����ÿ�������� for sheet_name in sheet_names: print(sheet_name) # ��ȡ��ǰ������ sheet = workbook[sheet_name] # ������������д��'AB3'��Ԫ�� sheet['AB3'] = new_sheet_names[n][-3:-1] sheet['W3'] = new_sheet_names[n][:4] n+=1 # 创建一个灰色填充样式 gray_fill = PatternFill(start_color='D3D3D3', end_color='D3D3D3', fill_type='solid') # 读取第一张表格(上半月)上半月没有16,但是为了表格好看,把16位置也加灰,9,11没有31日 xx=[[1,7,8,15,16],[16,17,21,22,28,31],\ [1,2,3,4,5,6,7,13,16],[19,20,26,27],\ [2,3,9,10,16],[16,17,23,24,30,31],\ [1,7,8,14,15,16],[21,22,28,29],\ [1,4,5,11,12,16],[18,19,20,21,22,23,24,25,26,27,28,29,30,31]] for bg in range(0,len(xx)): # 10张表 sheet = workbook.worksheets[bg] if bg%2==0: # 如果工作表的索引数字是双数,就输入原数 date=xx[bg] # [7,8,15] for d in date: # 7 # 遍历C5到C42的单元格并填充灰色 for row in range(4, 43): # 不变 for col in range(d*2+1, d*2+3): # 列 cell = sheet.cell(row=row, column=col) cell.fill = gray_fill else: # 如果工作表的索引数字是单,就把原数-15, 下月的表从16开始,等于上月表的1,所以需要减去15才能正确填充灰色 date=xx[bg] # [7,8,15] for d in date: # 7 # 遍历C5到C42的单元格并填充灰色 for row in range(4, 43): # 不变 for col in range((d-15)*2+1, (d-15)*2+3): # 列 cell = sheet.cell(row=row, column=col) cell.fill = gray_fill # 保存修改后的工作簿 workbook.save(path+r'\2024年9月点名册模版.xlsx')

后续再解析表格制作过程。