2022年全新Python开发的“猫猫日历本”,还没有的快来领取一下

女友生日,她最喜欢猫。这款猫咪日历最适合做她的生日礼物。 前言 我看网上女友过生日都是送她的手织包包,各种手工艺品,我的女朋友她最喜欢的是猫,家里也养了一只,所以你们是手工艺品,那我就来一款猫咪2022的日历送她吧,每天打开电脑都能看到最喜欢的猫咪和知道今天是几号,这个不比手工艺品差吧? 下载猫咪图片 我们在网页上,关键字搜索"猫咪",可以搜索出上万张猫咪的图片 选择自己喜欢的图片,下载到文件中,且为每一张图片命名为从1~12的数字 下载依赖库 本次,我们需要下载第三方依赖库-openpyxl完成写入编辑excel表格操作 ... 阅读详情

image.png

前言

近期云吸猫活动火热,猫咪太可爱了,趁着工作间隙,做一份2022年猫咪主题的日历给自己吧。

话不多说,我们来开始动手做吧!

下载猫咪图片

我们在网页上,关键字搜索"猫咪",可以搜索出上万张猫咪的图片

image.png

选择自己喜欢的图片,下载到文件中,且为每一张图片命名为从1~12的数字

image.png

下载依赖库

本次,我们需要下载第三方依赖库-openpyxl完成写入编辑excel表格操作

  • openpyxl 模块介绍

    openpyxl 是用于对Excel文件进行读取写入操作的库

  • openpyxl 模块下载

    pip install openpyxl
    复制代码

导入依赖库

根据日历的需求:要生成日历,并且写入到Excel表格,所以我们需要导入一下库

import openpyxl
# 日历模块
import calendar

# 设置单元格样式
from openpyxl.styles import Alignment,PatternFill,Font
# 获取列的字母
from openpyxl.utils import  get_column_letter
# 向Excel写入图片
from openpyxl.drawing.image import  Image
# 加载Excel文件
from openpyxl import load_workbook
复制代码

生成12个月的日历

根据日历的需求分析,做法如下

  • 首先使用openpyxl.Workbook()创建新

    wb = openpyxl.Workbook()
    复制代码
  • 使用 openpyxl.Workbook实例化对象wb调用create_sheet创建表

    sheet = wb.create_sheet(index=0,title=sheet_name[i])
    复制代码
  • 使用calendar.monthcalendar(year,i)获取指定月的二维列表数据

    print(calendar.monthcalendar(2022,1))
    
    # [[0, 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, 0, 0, 0, 0, 0, 0]]
    复制代码
  • 使用两个for循环就可以得到12个月的二维列表

    for j in range(len(calendar.monthcalendar(year,i))):
    
        for k in range(len(calendar.monthcalendar(year,i)[j])):
    
            value = calendar.monthcalendar(year,i)[j][k]
    复制代码
  • 条件判断当得到的数据是0是,则表格中写入空;否则写入具体的日期

    f value == 0:
    
        value = ''
        sheet.cell(row=j+9,column=k+1).value=value
    
    else:
        sheet.cell(row=j+9,column=k+1).value=value
    
        sheet.cell(row=j+9,column=k+1).font=Font(u"微软雅黑",size=11)
    复制代码
  • 为日历添加标题和样式设置

    • 由于设置日历firstday设置成周天为一周的第一天
    • 传入的日历标题为 ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
    • 字体设置成微软雅黑,大小为11
    • 单元格居中:Alignment(horizontal="right",vertical="center")
    for R1 in range(1,100):
    
        for C2 in range(1,100):
    
            sheet.cell(row=R1,column=C2).fill = fill
    
        days = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
    
        num = 0
    
        # 设置日历单元格样式
        for k3 in range(1,8):
    
            sheet.cell(row=8,column=k3).value = days[num]
            sheet.cell(row=8, column=k3).alignment= align
            sheet.cell(row=8, column=k3).font = Font(u"微软雅黑",size=11)
    
            sheet.column_dimensions[get_column_letter(k3)].width = 12
    
            num +=1
        ```
    
    
    复制代码
  • 最后我们设置一下日历的表格格式

    • 单元格高度设置为30
    • 单元格字体样式为微软雅黑
    • 单元格水平居中
    for k4 in range(8,15):
    
        sheet.row_dimensions[k4].height = 30
    
        sheet.cell(row=3,column=1).value = year+"年"
    
        sheet.cell(row=4,column=1).value = sheet_name[i]
    
        sheet.cell(row=3, column=1).font = Font(u"微软雅黑", size=16,bold=True,color="FF7887")
    
        sheet.cell(row=4, column=1).font = Font(u"微软雅黑", size=16, bold=True, color="FF7887")
    
        sheet.cell(row=3, column=1).alignment = align
        sheet.cell(row=4, column=1).alignment = align
    复制代码
  • 保存生成好的日历文件

    wb.save(filename)
    复制代码

添加喵咪图片

  • wb.load_workbook()打开日历文件

  • wb.get_sheet_names()获取Excel表格名字列表

  • 加载出来的文件对象使用add_image()方法把图片添加到对应表中

    
    def add_image(filepath):
    
            wb = load_workbook(filepath)
    
            sheet_names = wb.get_sheet_names()
    
            for i in range(0,len(sheet_names)):
    
                wb = load_workbook(filepath)
    
                ws = wb[sheet_names[i]]
    
                ws.merge_cells('I1:P20')
    
                img = Image(f'file/{i}.jpg')
    
                ws.add_image(img,'I1')
    
                wb.save(filepath)
    复制代码

最后来看一下效果吧

 

总结

本期,使用Python简单制作一个猫咪主题的日历,大家可以动手做一个个性化的日历吧~

完整的代码已开源→点我看看吧!

以上是本期内容,欢迎大佬们点赞评论,下期见~

python:calendar --- 日历相关函数 阅读详情

相关推荐

3天干完6个月的活,Claude把模型搬上AMD

一条挺刺激的消息:Anthropic 给投资人的材料里有一张幻灯片,写着它的 Claude Mythos Preview 只花了大约​,就摸清了怎么让另一个 Claude 模型在 AMD 的 MI355X 上跑起来。同一处还写了个对照数字:过去给一块新芯片做推理适配,通常要几十名工程师、​。3 天对 6 个月,这个比值太扎眼,当天中文互联网上就冒出一堆「英伟达的护城河塌了」的说法。我把能翻到的材料都翻了一遍,越看越觉得,塌掉的那一小块是真的,可塌的位置和很多人想的不一样。

DeepPing,日更,陪你聪明看世界。 438

monthcalendar_Python日历模块| 带有示例的monthcalendar()方法

monthcalendar Python calendar.monthcalendar()方法 (Python calendar.monthcalendar() Method) monthcalendar() method is an inbuilt method of the calendar module in Python. It works on simple text calendars...

cumt30111的博客 1449

Python编程实现日历

日历是我们日常生活中常用的工具之一,它可以用来显示特定日期的星期几、月份的天数等信息。然后,我们使用两个嵌套的循环遍历日历列表,并打印每一天的日期。否则,我们使用f-string将日期格式化为两位数的整数,并打印出来。你可以根据需要调整年份和月份,以显示不同的日历。在上面的代码中,我们首先导入了Python的calendar模块,它提供了一些用于处理日期和时间的函数和类。函数获取指定年份和月份的日历。在这个示例中,我们显示了2023年9月的日历。最后,我们在测试代码中指定了要显示的年份和月份,并调用。

Meta_C的博客 711

python calendar模块实例_【基础】学习笔记10-python3 calendar模块

calendar模块包含日历相关的若干函数和类,可生成文本形式的日历。0-6表示周一~周天制作电子日历:一个月calendar.month(year,month)返回某年某月的多行字符串calendar.prmonth(year,month)相当于print(calendar.month(year,month))制作电子日历:一整年calendar.calendar(year)以多行字符串的形式返...

weixin_39758712的博客 699

python:实现日历 (附完整源码)

python:实现日历 (附完整源码)

希望我的博客,能帮上你解决学习中工作中所遇到的问题 1344

干法刻蚀工艺进阶:如何通过调节DC自偏压优化刻蚀速率和各向异性

本文深入探讨了干法刻蚀工艺中DC自偏压的精细调控艺术。DC自偏压是影响刻蚀速率和各向异性的关键因素,文章通过实战案例,详细分析了如何通过调节射频功率、频率、腔室压力及气体成分等参数,间接而有效地控制DC自偏压,从而优化高深宽比硅沟槽等复杂结构的刻蚀效果,实现工艺性能的精准提升。

weixin_28308325的博客 335

python中生成日历列表_利用Python自动化生成逼格高的日历!

本次内容有感于《Python编程快速上手-让繁琐工作自动化》。根据书中的「处理Excel电子表格」章节内容,做出一份专属日历。使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块。学习Python中有不明白推荐加入交流群号:960410445群里有志同道合的小伙伴,互帮互助,群里有不错的视频学习教程和PDF!实现自动化处理表格信息,摆脱无趣无味。此外还有calenda...

weixin_29603387的博客 721

A robust and easy to implement method for IMU calibration without external equipments(IMU标定)

A robust and easy to implement method for IMU calibration without external equipments 1 标定原理1 亲试可用,还有动态演示效果不错。相比商用产品的简易标定流程,该标定方法有以下几点不同: 给出了加速度计和陀螺仪更复杂的模型。 利用Allan方差的定义,标定陀螺仪的偏置。 大量冗余数据,保证最优化收敛。利用数十...

擦擦擦大侠的博客 3950

Python日历类| 带有示例的monthdays2calendar()方法

Python Calendar.monthdays2calendar()方法 (Python Calendar.monthdays2calendar() Method) Calendar.monthdays2calendar() method is an inbuilt method of the Calendar class of calendar module in Python. It u...

cumubi7552的博客 455

告别jom Error 2:深入理解QtCreator、CMake与MSVC工具链的协作机制

本文深入解析QtCreator构建过程中常见的jom Error 2问题,揭示CMake与MSVC工具链的协作机制。从CMake生成器的工作原理到MSVC工具链的组件协作,帮助开发者系统化诊断构建错误,提升开发效率。

weixin_30654419的博客 432

笔记:使用Materials Studio计算聚合物的玻璃化转变温度

使用Materials Studio计算聚合物的玻璃化转变温度。

FXJgogogo的博客 1941

python的calendar(日历的学习)

前言: 一个总的模块:calendar 模块下有好多类,按数据的性质大致可以分为 迭代器型日历:calendar.Calendar() 文本型日历: calendar.TextCalendar() HTML型日历:clendar.HTMLClendar() 迭代器型日历 类的方法返回的数据对象都为迭代器。 比如: iterweekdays():单个的日号 itermonthdates():...

热铁皮屋上的猫的博客 2418

FPGA与GPU异构计算:重塑嵌入式AI的算力边界与场景定义

本文深入探讨了FPGA与GPU异构计算如何突破嵌入式AI的算力瓶颈。通过分析工业视觉、智能交通及航天等场景,阐述了FPGA负责高速数据采集与预处理,GPU专注复杂AI推理的协同模式,有效解决了传统单一架构在算力、功耗、接口和实时性上的挑战,为嵌入式AI应用提供了高效能解决方案。

spice的博客 486

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

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

Python实用宝典网 2970

【血汗泪心路历程】怎么彻底删掉Sangfor文件?怎么彻底删除easyconnect?删除sangfor后网络坏了、某些app无法正常启动怎么解决?

教程来源于网络的五湖四海+gpt解答。用到了好几个教程和方法,遂这篇总结一下。会标明出处!先上一下战绩:终于把sangfor扔进回收站里了!!!哈哈哈那一刻真的好爽。

weixin_71246590的博客 6万+

医药行业新零售项目数据分析报告——基于Excel的分析与可视化

不同平台客户支付金额用数字+百分比展示更直观。各大区支付金额分析较为粗浅,后续可加入不同大区人数、配送费等进行细分分析。图表略微单一,可采用组合图,运用两个及以上维度对数据进行分析。数据来源本项目数据来源于某机构的项目案例,以上分析内容均为本人原创,不涉嫌抄袭。原做项目,新平台首发。

2401_84213513的博客 1495

python打印2020某月的日历_教你用Python打印2020年日历

Python日期章节,由表示大日期的calendar,date模块,逐渐过渡到表示时间刻度更小的模块:datetime,time模块。今天列举关于calendar的小例子。1 年的日历图导入所需模块和函数import calendarfrom datetime import date绘制年的日历图mydate = date.today()year_calendar_str = calendar.c...

weixin_26704349的博客 883

YOLOv11改进策略【损失函数篇】| 通过辅助边界框计算IoU提升检测效果(Inner_GIoU、Inner_DIoU、Inner_CIoU、Inner_EIoU、Inner_SIoU)

为了弥补现有 IoU 损失在不同检测任务中泛化性弱和收敛速度慢的问题,·Inner-IoU·通过引入比例因子 “ratio” 来控制辅助边界框的尺度大小,利用不同尺度的辅助边界框来计算损失,从而加速边界框回归过程。

Limiiiing的博客 3893

教你用Python打印2020年日历

Python日期Python日期章节,由表示大日期的calendar, date模块,逐渐过渡到表示时间刻度更小的模块:datetime, time模块。今天列举关于calendar的小...

简说Python的博客 4251

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

2022,了不起的程序员日历来啦!

日历一天天地翻过,转眼间 2021 年还剩下一个半月了。这一年,小伙伴们有怎样的收获?年初的读书计划、健身计划都落实的怎么样啦!曾经信心满满立下的众多 Flag,如今都实现了没?来说一个好...

图灵教育 1395

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

本地化部署 DeepSeek,构建单细胞与空间转录组 AI 分析平台

weixin_53637133的博客 181

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【第 009 讲】全面掌握 Python 注释:注释的定义与作用 | 单行注释 | 三引号与多行注释 | 注释使用的最佳实践

本文系统讲解 Python 注释的完整知识体系:从注释的定义与作用讲起,梳理单行注释的书写位置、临时屏蔽用法与 PEP 8 排版规范,剖析注释被忽略的底层机制;进而说明三引号字符串的本质与嵌套问题;最后给出注释使用的三条实践原则,帮助读者写好可读性高的注释。

大模型全栈工程师 · Thanks_ks 575

AI全栈实战 | 3.9-01 爬虫入门:requests 加 BeautifulSoup 三分钟跑通,但 90% 的人栽在这 4 个“礼貌“问题上

⚠️:本文内容仅用于。请遵守目标站点的服务条款与相关法律法规,不得对目标服务造成负担,不得采集、传播个人隐私数据。技术是中性的,边界在你手里。爬虫的入门技术(requests 发请求 + BeautifulSoup 解析)三分钟就能学会。真正区分"会用爬虫"和"会做爬虫的人"的,是这篇我们跑通"请求→解析→存储"的最小闭环,然后重点把"合规与礼貌"这根弦给你绷上。

源码获取 | 运行部署 | 定制二开修改,如果回复不及时请耐心等待,请见谅。 432

从一段视频到可漫游的 4D 有声场景:思路拆解与最小复现手记

只需一段手机视频,你就能生成可"走进去"的 4D 有声场景:转头时狗叫声方向随之变化,走近时声音更清晰。本文拆解 Video-to-4DAVScene 的核心思路,手把手带你用几十行 Python 搭出最小管线,把视频中的运动物体变成带空间位置的声源,并附上三个真实踩坑的排障经验,代码可直接跑。🎧

helloagent的博客 243

【每天一个 Python 小案例30】Python 基础知识综合小项目:我的工具盒

作为系列收官,本篇把前 29 篇的知识点合成一个能直接用的命令行工具"我的工具盒":计算器(用 ast 解析表达式,不碰 eval)、单位换算与温度转换(一张换算表 + 特例分支)、记账与分类统计(Decimal + JSON 持久化)、以及用"字典当命令表"把菜单和业务逻辑解耦的主循环。文中对比了 eval 的安全隐患与 ast 白名单的做法,解释了 lambda 闭包在字典里的写法与晚绑定陷阱,并在最后给出整个系列的知识地图,把变量、数据结构、控制流、函数、类、异常、文件、标准库八块内容对应到具体篇目。

xinjiyaya的博客 427
上一篇: 纠结火锅去哪吃,用Python可视化做个数据呈现决定吧(附学习资源)
下一篇: Python爬虫实战,pytesseract模块,Python实现拉勾网岗位数据可视化
老贡讲Python
博客等级 码龄5年 526粉丝 129原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值