一、准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,公众号有安装包可以领取进行安装。

Windows环境下打开Cmd(开始—运行—CMD),苹果系统环境下请打开Terminal(command+空格输入Terminal),准备开始输入命令安装依赖。

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

pip install openpyxl

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

二、代码说明

1. 获取日期

首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息:

calendar.monthcalendar(2021, i)

通过这个函数,我们能得到 2021年i月的日历,它类似一个j*k的矩阵,因此可以这样遍历得到每一个日期:

# 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(2021, 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怎么用?给大家一个设置单元格字体的例子:

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提供了很方便的插入方法:

# 添加图片

img = Image(f'12graphs/{i}.jpg')

sheet.add_image(img, 'I2')

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

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

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

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

set_information('2021-12-1', '考试')

set_information('2021-12-1', '约会')

简单的代码讲解如上,详细代码可以自行领取

三、运行代码

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

python calendary.py

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

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

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

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

我们的文章到此就结束啦

公众号:Python程序员城南

python做日历牌_2021年来了,从Python定制一份日历开始吧!相关推荐

  1. python做日历牌_中秋节到了,送你一个Python做的Crossin牌“月饼”

    明天是难得一见的国庆中秋双节合一,在这里除了祝大家节日快乐之外,我们还要送上一个"月饼"--当然这个月饼是不能吃的,因为它是用python做的.先给大家看一下效果图. 图1. 月饼 ...

  2. 用python做舆情分析系统_如何用Python做舆情时间序列可视化?

    如何批量处理评论信息情感分析,并且在时间轴上可视化呈现?舆情分析并不难,让我们用Python来实现它吧. 痛点 你是一家连锁火锅店的区域经理,很注重顾客对餐厅的评价.从前,你苦恼的是顾客不爱写评价.最 ...

  3. 0基础学python做什么工作好-零基础学Python,越早明白这些,越快找到好工作!...

    如何学习python,就能仅靠python得到好工作? 读者A:自学python一年,用于写网络爬虫,但一直觉得自己对python理解还很低层.现在大三,打算再用一年时间学习python,让自己对这们 ...

  4. 0基础学python做什么工作好-零基础自学Python多久可以找工作?

    零基础自学Python多久可以找工作?零基础自学3个月很难找到工作.如果全职学习Python的话,学习6个的时间,不一定能达到找到工作的水平,掌握项目经验还需要更久,达到企业需要的岗位要求还需要多练习 ...

  5. 0基础学python做什么工作好-如何快速学习Python编程?可以做什么职业?

    近些年Python热度不减,一直占据编程语言排行榜的前几位.人生苦短,让我们来学一学Pyhotn吧,找到一份满意的工作还是没有问题的. Python语言本身所具有的优势,决定了从事Python学习的开 ...

  6. python做运动控制_第一课:用Python操控小龟小车运动

    欢迎来到小龟的课堂,今天我们讲如何用小龟小车的车载Python控制小车运动. 如果小伙伴还不会使用小龟小车的Python编辑器的话,可以阅读这篇教程<如何使用小龟小车的Python编辑器> ...

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

    一.准备 开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装.如果你用Python的目的是数据分析,可以直接安装Anacond ...

  8. python做日历牌,怎么使用python tkinter制作日历?

    我们可能在编程考试里遇到过这样的编程题,对于基础不太好的小伙伴,可能很头疼这个流程,之前也跟大家说过掌握最精华的内容,才是最重要的,因此,下面小编不仅通过大家容易考试碰到的问题,更给大家教学,常见项目 ...

  9. python做项目看板_三、使用python数据仓库实现可视化看板

    1. 项目目的 实现自动更新的可视化看板,满足业务人员自主分析的需求 项目流程 2. 观察 数据字典 cmd观察数据库中数据 3. Python加工 四.添加数据索引 create index ind ...

最新文章

  1. j2recover----最强大的jfs2文件恢复工具
  2. java json.stringify_JavaScript如何实现JSON.stringify
  3. 在命令行中打开远程端的图形应用程序
  4. Algorithm I assignment Collinear
  5. Win配置Apache+mod_wsgi+django环境+域名
  6. 企业实战_16_MyCat全局自增ID
  7. Python之网络编程(socketserver模块详解、链接认证)
  8. |NOIOJ|动态规划|8462:大盗阿福
  9. Sony MZ-RH1 Hi-MD
  10. 如何用VB.Net创建一个三层的数据库应用程序
  11. serviceFabric oracle,Oracle ASM和多路径软件的兼容性【转】
  12. 【Magick++】创建图像
  13. 训练faster rcnn报错:KeyError:‘max_overlaps’
  14. 【NISP一级】1.3 网络空间安全政策与标准
  15. Arduino项目——定时控制,手机控制Arduino实现远程开关和定时开关
  16. U盘安装原版XP系统全攻略
  17. re.search与re.findall的区别
  18. window10如何重命名系统用户文件夹
  19. 支票:现金支票转帐支票使用方法大全
  20. Java工作流引擎节点接收人设置“其他方式总结”系列讲解

热门文章

  1. 萧伯纳:劳动和运动(转)
  2. 互联网晚报 | 8月23日|共享充电宝涨至4元/小时;公安部辟谣2022红绿灯新国标:不存在;滴滴高德曹操首汽等11家公司被约谈...
  3. flutter基础结构——顶部appbar和body
  4. 小娜 api android,Android版小娜截图曝光:联通一切
  5. MT6572平台加入呼吸灯功能——控制芯片SN3112-12简介
  6. AndroidStudio小松鼠版本添加jitpack.io位置
  7. HTTP 协议中 Vary
  8. 证据积累聚类集成算法(Evidence Accumulation Clustering)代码复现与实验
  9. 超硬核!兔兔阿里p7学长给的面试知识库
  10. 处理excel,该选择VBA,还是python?