女友生日,她最喜欢猫。这款猫咪日历最适合做她的生日礼物。

article/2025/7/1 0:59:53

前言

     我看网上女友过生日都是送她的手织包包,各种手工艺品,我的女朋友她最喜欢的是猫,家里也养了一只,所以你们是手工艺品,那我就来一款猫咪2022的日历送她吧,每天打开电脑都能看到最喜欢的猫咪和知道今天是几号,这个不比手工艺品差吧?

image.png

下载猫咪图片

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

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=valueelse:sheet.cell(row=j+9,column=k+1).value=valuesheet.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 = filldays = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]num = 0# 设置日历单元格样式for k3 in range(1,8):sheet.cell(row=8,column=k3).value = days[num]sheet.cell(row=8, column=k3).alignment= alignsheet.cell(row=8, column=k3).font = Font(u"微软雅黑",size=11)sheet.column_dimensions[get_column_letter(k3)].width = 12num +=1```复制代码
  • 最后我们设置一下日历的表格格式

    • 单元格高度设置为30
    • 单元格字体样式为微软雅黑
    • 单元格水平居中
    for k4 in range(8,15):sheet.row_dimensions[k4].height = 30sheet.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 = alignsheet.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简单制作一个猫咪主题的日历,大家可以动手做一个个性化的日历吧~


是不是很简单。


http://chatgpt.dhexx.cn/article/Au4o4hLO.shtml

相关文章

TYVJ1423 GF和猫咪的玩具

Description: GF同学和猫咪得到了一个特别的玩具,这个玩具由n个金属环(编号为1---n),和m条绳索组成,每条绳索连接两个不同的金属环,并且长度相同。GF左手拿起金属环L,猫咪右手(或者说…

谁说技术男不浪漫!90 后程序员 2 天做出猫咪情绪识别软件

整理 | 王晓曼 出品 | CSDN(ID:CSDNnews) 9月1日,一则关于#程序员2天做出猫咪情绪识别软件#的话题登上微博热搜,参与阅读的人数达到了8218.1万,讨论次数1.3万,引发网友们的热议。 高手在民间…

喵呜

小老鼠是如何升级成猫咪了。 the third week begin! 下次!!之前喵呜喵呜,哈。睡觉了有点困了。

TI的CCS集成开发环境的 快捷键设置 自定义的快捷键 实现编译下载功能 CCS9.xxx

今天给大家分享一下CCS的快捷键设置 ,初用CCS 各种快捷键用着很不适应(以前是用keil5.23 的 ),所以我就尝试着更改一下CCS的快捷键。(一般工具类软件都会开放快捷键修改的接口, keil 也有 所以我就尝试了…

ccs工程移植后的路径修改

从别人的电脑中将ccs文件拷贝过来后,编译会出现报错,如下所示: 这种情况下需要对路径进行修改,步骤如下: 1.右键项目名,打开属性; 2.找到C2000 Complier 》Include Options ,删除下…

CCS7.0从安装到使用

本人第一次使用CCS,安装完成后因为不知道需要安装库文件,造成当打开工程时出现找不到头文件的错误。经过别人指导以及网络查找解决问题,在此记录一下,也希望给初学者带来帮助,少走弯路。 1、软件下载 安装CCS需要安装…

CCS10,安装SDK后,软件无法识别问题

原因: CCS10默认的安装目录是C盘的\ti或是D:\ti\ccs1011中,如果安装到D盘,会查不到的 手动添加SDK目录

CC2640R2学习笔记—CCS环境最简单配置、下载运行第一个程序(OLED)

CC2640R2学习笔记—CCS环境最简单配置、下载运行第一个程序(OLED) Ti 官网下载CCS安装 CCS导入官方CCS工程编译工程驱动OLED屏; 开发板 :CC2640R2 LaunchPad ; Ti 官网下载CCS CCS10.3.1.00003 下载地址 [https://dow…

【CCS】Windows环境Code Composer Studio 下载和使用教程

Code Composer Studio下载 1、TI官网下载地址:link 2、百度网盘下载地址:link 提取码:5c7v 一、CCS官网下载 TI官方提供了免费的Code Composer Studio 集成开发软件下载供广大使用者学习开发 1、首先点击笔者上述提供的官方下载链接进入下载…

MSP432P401R学习:CCS入门实验练习,使用CCS新建、导入、编译、下载工程

CCS入门实验 在某磁盘根目录以学号创建CCS工作目录,完成下述实验,并记录步骤: 实验一:从示例工程中导入下面2个工程,将每个工程完成编译 driverlib\gpio_toggle_otpt、driverlib\gpio_inpt_interrpt(包含于…

CCS中下载程序到FALSH与RAM类型切换

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言操作步骤及说明总结 前言 从CCS5到CCS12跳转,好多功能做了改变,在TI官网下载了最新的CCS12,下载了最新的C2000,…

CCS 下载程序时报错的解决办法( TI C2000 TMS320F28379D)

所报错误: An internal error occurred during: "Launching J9_LED_text". com/ti/dvt/energytrace/af/PowerActivity 中文翻译: 在“启动j9ledtext工程”期间发生了一个内部错误。 编译过程也没有报任何错误,自己找错误原因找了…

MSP432的CCS工程配置以及使用J-Link下载程序

目录 一、CCS软件安装 1、下载CCS安装包​ 2、开始安装 3、安装选择 4、选择开发芯片​ 5、 安装J-link调试器​ 二、配置工程 1、新建工作区间 2、打开工作区间 3、新建工程 4、新建文件夹 5、导入driverlib库 6、 配置工程头文件 7、编译下载 三、MSP432模板工…

TI CC3200 launchpad 使用 CCS 下载

开发环境要求 : 1.CCS :6.0版本及以上(免费软件) 去TI官网下载新一点的安装即可 (安装时安装包的路径及安装路径均不能有中文) 2.IAR :6.7版本及以上 (这里以CCS为例IAR不做介绍&a…

CCS 6.0 下载

每次到TI下载软件都得等几天,才发一封回复邮件,里面有下载地址。真的好烦。 今天想下载CCS 6.1 或CCS 6.0网上没找到下载地址,找了半天 http://processors.wiki.ti.com/index.php/Download_CCS 在此页面,点进去下载,…

ccs下载程序时遇到的错误,debugger initialization error 个人解决办法

本人使用的软件就是从IT官网上下载的最新版ccs软件,当前版本12.3 在使用离线安装包下载后无论如何调整软件版本都不能避免出现如图问题 最后发现问题是由于把文件下载地址放在桌面上了(软件确实在d盘直接放着,但打开ccs时让你选择文件放置位…

CCS7.2的下载、安装及打开CCS3.3工程文件

1、 TI CCS 集成开发环境现在已经完全免费了 CCSv7 已经不需要使用 License了。 如果使用的是 CCSv4 、CCSv5以及 CCSv6 请从 TI 官方网站下载免费的全功能 License。 2、 系统需求 CCSv4/CCSv5/CCSv6[6.1.3 之前版本] 不论是 Windows 系统还是 Linux 都只有32位版本&#x…

CCS(Code Composer Studio) 的下载、安装和导入工程

1.下载 网址 https://software-dl.ti.com/ccs/esd/documents/ccs_downloads.html#Download_the_latest_CCS 自行选择版本 2.安装(这里就是小编的泪点了) 点开exe文件 点击next 同意后next 注意,下一步理想情况下是这样,这里是在…

Win系统 - 该死!WebGL 遇到了问题(QQ浏览器)

问题: 解决方法: 1. 在地址栏里输入 about:flags,回车打开。 2. 在这个页面里找到 Override software rendering list,将其启用。 3. 重启浏览器试试。