Excel+Python=精美DIY壁纸日历


一、准备

开始之前,你要确保Python和pip已经成功安装在电脑上噢,如果没有,请访问这篇文章:超详细Python安装指南 进行安装。如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda

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

当然,我更推荐大家用VSCode编辑器,把本文代码Copy下来,在编辑器下方的终端运行命令安装依赖模块,多舒服的一件事啊:Python 编程的最好搭档—VSCode 详细指南

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

pip install openpyxl

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

PS:【Python实用宝典】公众号后台回复 日历 即可下载本文源代码。

二、代码说明
1. 获取日期
首先,绘制一份日历,得先知道每个月份有多少天,每天都是星期几,可以使用calendar包获得这些信息:
calendar.monthcalendar(2019, i)
通过这个函数,我们能得到 2019年i月的日历,它类似一个j*k的矩阵,因此可以这样遍历得到每一个日期:
for j in range(len(calendar.monthcalendar(2019, i))):
    for k in range(len(calendar.monthcalendar(2019, i)[j])):
        value = calendar.monthcalendar(2019, i)[j][k]
2. 绘制得到日历

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官方文档:https://openpyxl.readthedocs.io/en/stable/

你可以看到里面大部分单元格的属性都是类似上面那样设置的,非常简单。

3. 作品是每个月份都有一个图在旁边做装饰,其添加方法如下:
imgs = ['12/1.jpg','12/2.jpg','12/3.jpg','12/4.jpg','12/5.jpg','12/6.jpg','12/7.jpg','12/8.jpg','12/9.jpg','12/10.jpg','12/11.jpg','12/12.jpg']
img = Image(imgs[i-1])        
sheet.add_image(img, 'J2')

imgs是每个图的相对路径,如12/1.jpg 是名字为12的文件夹下的1.jpg. 

图像路径要导入到openpyxl的Image对象中:img=Image('12/1.jpg'),然后将该变量放置到某个单元格上:sheet.add_image(img, 'J2).

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

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

set_information('2019-12-5', '面试')

简单的代码讲解如上,详细代码可以在【Python实用宝典】公众号后台回复 日历 下载查看。

三、运行代码

终于到了激动人心的运行代码部分了,运行这份代码,你只需要把你想要的图片变量名(imgs)里的路径改成你的图片路径即可。然后在本地cmd/terminal运行:

python calendary.py


会自动生成一个excel表格叫my_calendary.xlsx. 怎样从里面把日历提取成图片?

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

这里给大家献上源代码里的前6张图,希望大家喜欢!下载地址:

https://pythondict.com/wp-content/uploads/2019/08/2019080909262065.zip

(PS:后6张希望大家能自己动手跟着做一做,你一定会有收获的)

根据大家的喜好,大家可以自己设置背景色、边框色、交替色和图片,还有把这个讨厌的好看的二维码去掉。

如果大家看了文章还有不懂的地方,欢迎在后台回复【加群】进群讨论,由于最近营销号过于肆无忌惮,群二维码已经关闭,所有进群的同学将由作者本人亲自校验通过哦。

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

原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!

点击下方阅读原文可获得更好的阅读体验

Python实用宝典 (pythondict.com)

不只是一个宝典

欢迎关注公众号:Python实用宝典

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值