【办公类-54-03】20250219营养员《每周人数统计表》(双休日、国定假日,变成灰色)

背景需求:

开学了,厨房需要一套“总园的每周各班幼儿来园人数统计表”。去年我做的“灰色版”表格很受好评——

“周次星期都很清楚,而且不上班的日子都划掉了(灰色),(只在白色里面写)就不会写错格子了”

所以今年做完“校历”后,我马上就做“营养员的统计表”,果然写代码时,营养员老师就来问这套表格了

把去年9月做的找出来

【办公类-54-02】20240827营养员《每周人数统计表》(双休国定假涂成灰色)_每周统计表-优快云博客文章浏览阅读1.7k次,点赞59次,收藏18次。【办公类-54-02】20240827营养员《每周人数统计表》(双休国定假涂成灰色)_每周统计表 https://blog.youkuaiyun.com/reasonsummer/article/details/141610345

今年再做这套,因为是去年用星火讯飞AI写的Python代码,所以我根本不理解原理,花了半天时间重新看代码,梳理流程,随后行了调整优化

(如果哪一天没有AI了,我依旧不会写Python。o(╥﹏╥)o)

步骤一:只需要提取20的周一到周日这两天,合并成一个日期范围。

这里用的是01-01正好从周一开始

'''
2024学年第二学期校历,制作营养员的表格(只要7天正好从周一开始)
星火讯飞 阿夏
2024年2月19日
'''


# -*- coding: utf-8 -*-

import datetime
import openpyxl
from openpyxl.styles import Alignment, PatternFill
import time

# for 

path=r'C:\Users\jg2yXRZ\OneDrive\桌面\20250217营养员表格'
title='2024学年第二学期校历'

# 创建一个新的Excel工作簿
workbook = openpyxl.Workbook()
sheet = workbook.active

# 设置标题行
title_row = ["周次", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
sheet.append(title_row)

# 设置日期范围
start_date = datetime.date(2025, 2, 17)
end_date = datetime.date(2025, 6, 30)

# 计算周数和日期
current_week = 1
current_day = start_date
while current_day <= end_date:
    # 获取当前周的第一天(星期一)
    week_start = current_day - datetime.timedelta(days=current_day.weekday())
    
    # 如果当前日期是新的一周,添加新行并更新周数
    if current_day == week_start:
        sheet.append([f"第{current_week:02d}周"])
        current_week += 1
    
    # 在正确的单元格中添加日期
    column_index = current_day.weekday() + 2  # 从B列开始,所以加2
    cell = sheet.cell(row=current_week, column=column_index)
    
    # 不同的表示方法
    # cell.value = current_day.strftime("%Y-%m-%d")    # 2024-09-01    
    # cell.value = current_day.strftime("%Y-%#m-%#d")    # 2024-9-1
    # cell.value = current_day.strftime("%m/%d")      # 09-01
    # cell.value = current_day.strftime("%#m/%#d")    # 9-1
    # cell.value = current_day.strftime('%Y{y}%m{m}%d{d}').format(y='年', m='月', d='日')   # 2024年09月01日
    cell.value = current_day.strftime('%Y{y}%#m{m}%#d{d}').format(y='年', m='月', d='日')  # 2024年9月1日   
    
    
    cell.alignment = Alignment(horizontal='center', vertical='center')  
    
    
    # 移动到下一天
    current_day += datetime.timedelta(days=1)   



# 在A列后面插入两个空列 # 前面B=2,后面1代表插入几列
sheet.insert_cols(2, 1)

# import openpyxl

# 遍历每一行,读取D列和H列的值,组合后写入B列
# for row in range(2, sheet.max_row + 1):
#     d_value = sheet.cell(row=row, column=4).value  # D列的值
#     h_value = sheet.cell(row=row, column=10).value  # H列的值
#     if h_value is not None:  # 检查h_value是否为None
#         combined_value = f"{d_value}——{h_value}"  # 组合值,只保留H列单元格内容的[5:]部分
#         sheet.cell(row=row, column=2).value = combined_value  # 写入B列
#     else:
#         print(f"Row {row} has a None value in column H")

# B列插入合并日期
for row in range(2, sheet.max_row + 1):
    d_value = sheet.cell(row=row, column=3).value  # 周一列的值
    h_value 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿夏reasonsummer

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值