当前位置: 首页 > news >正文

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

背景需求:

每学期开学要做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������д��AB3import openpyxl
from datetime import datetime, timedelta
import timeimport openpyxl
from openpyxl.styles import PatternFillimport 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, timedeltastart_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_nameprint('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_fillelse:  # 如果工作表的索引数字是单,就把原数-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')

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣1005-K 次取反后最大化的数组和(java详细题解)
  • 【SQL】餐馆营业额七日均线数据
  • 《Spring Boot 集成 Swagger:打造高效接口文档与开发体验》
  • 代码小妙招:用Java轻松获取List交集数据
  • 大数据技术之Flume 数据流监控——Ganglia 的安装与部署(11)
  • Leetcode 22. 括号生成 回溯 C++实现
  • vulhub xxe靶机
  • go+gin+vue入门
  • Prometheus 告警Promesql整理
  • 这些常用测试平台,你们公司在用的是哪些呢?
  • 全新一代理想智能驾驶开启万人体验团招募,OTA 6.2正式全量推送
  • 华硕天选Air:开学季的性价比之巅
  • 聚焦工业自动化领域,港迪技术IPO上市加码技术研发投入
  • MySQL:简述对事务的认识
  • 排序算法之希尔排序详细解读(附带Java代码解读)
  • 2017届校招提前批面试回顾
  • 230. Kth Smallest Element in a BST
  • Centos6.8 使用rpm安装mysql5.7
  • Elasticsearch 参考指南(升级前重新索引)
  • magento2项目上线注意事项
  • maven工程打包jar以及java jar命令的classpath使用
  • Nodejs和JavaWeb协助开发
  • php ci框架整合银盛支付
  • php的插入排序,通过双层for循环
  • SQLServer之创建数据库快照
  • V4L2视频输入框架概述
  • Vim 折腾记
  • Vue.js源码(2):初探List Rendering
  • XForms - 更强大的Form
  • 解析 Webpack中import、require、按需加载的执行过程
  • 看图轻松理解数据结构与算法系列(基于数组的栈)
  • 我的zsh配置, 2019最新方案
  • 正则学习笔记
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • #NOIP 2014# day.2 T2 寻找道路
  • #考研#计算机文化知识1(局域网及网络互联)
  • (C++哈希表01)
  • (LeetCode) T14. Longest Common Prefix
  • (Redis使用系列) SpringBoot中Redis的RedisConfig 二
  • (附源码)springboot 个人网页的网站 毕业设计031623
  • (欧拉)openEuler系统添加网卡文件配置流程、(欧拉)openEuler系统手动配置ipv6地址流程、(欧拉)openEuler系统网络管理说明
  • (四)React组件、useState、组件样式
  • *算法训练(leetcode)第四十七天 | 并查集理论基础、107. 寻找存在的路径
  • .mat 文件的加载与创建 矩阵变图像? ∈ Matlab 使用笔记
  • .NET Framework 3.5中序列化成JSON数据及JSON数据的反序列化,以及jQuery的调用JSON
  • .net mvc 获取url中controller和action
  • .net 提取注释生成API文档 帮助文档
  • .NET微信公众号开发-2.0创建自定义菜单
  • .NET中使用Redis (二)
  • @Autowired自动装配
  • @transactional 方法执行完再commit_当@Transactional遇到@CacheEvict,你的代码是不是有bug!...
  • [20170728]oracle保留字.txt
  • [AndroidStudio]_[初级]_[修改虚拟设备镜像文件的存放位置]
  • [Asp.net MVC]Asp.net MVC5系列——Razor语法
  • [BZOJ4337][BJOI2015]树的同构(树的最小表示法)