Python动态月度日历Excel生成器

MoMo 2023年8月26日18:50:21
评论
115

功能

本脚本用于生成一个特定年份的日历,将其保存在Excel工作簿中。用户可以自定义年份以及一周的开始日(如星期一、星期日等)。每个月都会在一个单独的Excel工作表中呈现,且工作表中的周会以绿色背景进行隔行标识。

使用场景

  • 需要特定格式日历的个人或组织。
  • 对于需要手动跟踪或计划事件的人员,此脚本生成的日历可以作为模板。

如何使用

  1. 运行脚本。
  2. 根据提示,输入希望生成日历的年份。
  3. 根据提示,输入一周的开始日。

完成以上步骤后,一个名为“[年份]_calendar.xlsx”的Excel文件会被保存在当前目录下

from openpyxl import Workbook
from openpyxl.styles import PatternFill
import calendar

def create_month_sheet(wb, year, month, start_day):
    # 创建新的工作表并命名
    ws = wb.create_sheet(title=f"{calendar.month_name[month]}_{year}")

    # 写入标题 xpanx.com
    ws.append(["Week"] + [calendar.day_name[(i + start_day) % 7] for i in range(7)])

    # 创建该月的日历
    cal = calendar.monthcalendar(year, month)
    for i, week in enumerate(cal):
        ws.append([f"Week {i+1}"] + week)

        # 如果是隔一周,则更改背景色
        if i % 2 == 1:
            for cell in ws[f"A{ws.max_row}:G{ws.max_row}"]:
                cell[0].fill = PatternFill(fill_type="solid", fgColor="00FF00")

# 获取用户输入
year = int(input("请输入年份(例如:2023):"))
start_day = int(input(f"请输入一周的开始时间(0代表{calendar.day_name[0]}, 1代表{calendar.day_name[1]}, 等等):"))

# 创建一个Excel工作簿
wb = Workbook()
wb.remove(wb.active)  # 移除默认的工作表

# 为每个月创建一个工作表
for month in range(1, 13):
    create_month_sheet(wb, year, month, start_day)

# 保存工作簿
wb.save(f"{year}_calendar.xlsx")

 

知识点解释

openpyxl

openpyxl是一个Python库,用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件。在这个脚本中,我们使用它来创建一个新的Excel工作簿、添加工作表、填充单元格并保存工作簿。

Workbook和Worksheet

openpyxl中,Workbook类用于创建新的工作簿,而Worksheet则代表工作簿中的一个工作表。我们可以轻松地添加或删除工作表。

PatternFill

PatternFillopenpyxl.styles中的一个类,用于设置单元格的填充样式。在这个脚本中,我们使用它来为Excel工作表中的每两行设置绿色背景。

calendar库

Pythoncalendar库用于执行与日历相关的操作,包括但不限于生成日历、获取特定月份或年份的信息等。在这个脚本中,我们使用calendar.monthcalendar来为特定年份和月份生成日历。

input函数

Python内置的input函数用于获取用户输入。在这个脚本中,我们使用它来获取用户想要生成日历的年份以及一周的开始日。

循环和条件语句

这个脚本使用了Python的for循环和if条件语句来迭代每个月和每一周,以及在满足特定条件(如行数为奇数)时设置背景色。

通过组合上述各个元素和概念,本脚本能够实现其主要功能:生成一个用户自定义的Excel日历。

 

 

 

 

https://xpanx.com/
MoMo
  • 本文由 发表于 2023年8月26日18:50:21
  • 转载请务必保留本文链接:https://xpanx.com/4182.html
Python 爬取链家二手房数据做数据分析 Python

Python 爬取链家二手房数据做数据分析

这是一个用Python编写的网络爬虫程序,旨在从链家网(Lianjia)的上海二手房页面收集房源信息。该程序使用requests库来发起对链家网的HTTP请求,用BeautifulSoup库来解析返回...
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: