前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2022年来了,从Python定制一份日历开始吧!

2022年来了,从Python定制一份日历开始吧!

原创
作者头像
陈晨135
发布2022-01-10 19:47:57
6200
发布2022-01-10 19:47:57
举报
文章被收录于专栏:Python小课堂Python小课堂
图片
图片

一、准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda。 Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊。

在终端输入以下命令安装所需要的依赖模块:

代码语言:javascript
复制
pip install openpyxl

看到 Successfully installed xxx 则说明安装成功。

图片
图片

二、代码说明

1. 获取日期
首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息:
代码语言:javascript
复制
calendar.monthcalendar(2022, i)
通过这个函数,我们能得到 2022年i月的日历,它类似一个j*k的矩阵,因此可以这样遍历得到每一个日期:
代码语言:javascript
复制
# calendar.monthcalendar 获得的值类似于:
# [[0, 0, 0, 0, 1, 2, 3],
# [4, 5, 6, 7, 8, 9, 10],
# [11, 12, 13, 14, 15, 16, 17],
# [18, 19, 20, 21, 22, 23, 24],
# [25, 26, 27, 28, 29, 30, 31]]
# 从左至右为星期日到星期六
month_calendar = calendar.monthcalendar(2022, i)
for row in range(len(month_calendar)):
    for col in range(len(month_calendar[row])):
        value = month_calendar[row][col]
图片
图片
2. 绘制得到日历

Openpyxl模块提供了许多方便的功能,比如设置单元格格式、调整单元格颜色、添加图片等。

基于Openpyxl,绘制一份日历最方便的做法是先将日期等信息绘制到excel中,然后再从excel中提取图片出来。

Openpyxl怎么用?给大家一个设置单元格字体的例子:

代码语言:javascript
复制
sheet.cell(row=j + 4 + count, column=k + 2).font = Font(u'微软雅黑', color=text_color , size=14)

sheet是对应的表格,row和column就是某个单元格的位置,然后对font属性进行设置,调用Font类并设置参数。

如果大家不知道Font类有什么参数,可以参考openpyxl官方文档。 你可以看到里面大部分单元格的属性都是类似上面那样设置的,非常简单。

图片
图片
3. 作品是每个月份都有一个图在旁边做装饰
为了给每个月份添加一份装饰图,需要向Excel中插入图片,幸运的是,Openpyxl提供了很方便的插入方法:
代码语言:javascript
复制
# 添加图片
img = Image(f'12graphs/{i}.jpg')
sheet.add_image(img, 'I2')

12graphs下存放了12个月份的图,循环遍历每张表格,就能将对应的图表添加并渲染到 I2 格子上. 

图片
图片

如果你要自行DIY,请注意图片的名称不能过错,必须是从1到12的jpg格式。

图片
图片

\

4. 我们还有一个神秘功能

差点忘了告诉大家了,我们的日历能支持备注哦,在调用get_month_xlsx得到文档前,通过set_information()放入你某一天想做的事情即可。如:

代码语言:javascript
复制
set_information('2022-12-1', '考试')
set_information('2022-12-1', '约会')
图片
图片

三、运行代码

终于到了激动人心的运行代码部分了,运行这份代码,你只需要在本地cmd/terminal进入该项目源代码文件夹运行:

代码语言:javascript
复制
python calendary.py

会自动生成一个excel表格叫my_calendary.xlsx,这就是我们生成的日历了。

怎样从里面把日历提取成图片?

很简单,复制拉取你想要的部分,粘贴到任何聊天窗口就能变成一张图片

图片
图片

大家可以阅读代码,根据自己喜好尝试设置背景色、边框色、交替色和图片。

我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注我。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 获取日期
  • 首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息:
  • 通过这个函数,我们能得到 2022年i月的日历,它类似一个j*k的矩阵,因此可以这样遍历得到每一个日期:
  • 2. 绘制得到日历
  • 3. 作品是每个月份都有一个图在旁边做装饰
  • 为了给每个月份添加一份装饰图,需要向Excel中插入图片,幸运的是,Openpyxl提供了很方便的插入方法:
  • 4. 我们还有一个神秘功能
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档