本次内容有感于《Python编程快速上手-让繁琐工作自动化》。

根据书中的「处理Excel电子表格」章节内容,做出一份专属日历。

使用的模块为openpyxl,一个能读取和修改Excel电子表格的Pyhton模块。

实现自动化处理表格信息,摆脱无趣无味。

此外还有calendar模块,通过该模块生成日历信息。

最后利用openpyxl和calendar库,实现自动化生成爱豆日历。

/ 01 / 科普

在进行代码操作前,简单对相关知识做个简单的学习。

一个Excel电子表格文档称为一个工作䈬。

一个工作䈬保存在扩展名为「.xlsx」的文件中。

划重点,openpyxl只支持「.xlsx」类型的格式。

所以对于Excel2003版「.xls」格式是不支持的。

每个工作䈬可以包含多个表,又称为工作表。

本次生成的信息就是在一个工作䈬,12个工作表内。

calendar库主要是生成日历信息。

import calendar# 设置每周的起始日期码,为星期天
calendar.setfirstweekday(firstweekday=6)
PYthon学习企鹅裙:88198-2657  领取python自动化编程资料教程
# 返回2019年年历
print(calendar.calendar(2019, w=2, l=1, c=6))
PYthon学习企鹅裙:88198-2657  领取python自动化编程资料教程

输出如下。

返回1月份每列信息情况。

# 返回每月每列信息print(calendar.monthcalendar(2019, 1))# 输出结果[[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]]

与上图里1月份信息比较下,你会发现多了个数字0。

其他完全一样,所以遍历列表信息就完事了。

/ 02 / 爱豆日历

爱豆日历的生成其实也挺简单的。

主要是单元格文本添加,字体设置,背景设置,图片设置。

详细代码如下。

from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils import get_column_letter
from openpyxl.drawing.image import Image
import openpyxl
import calendar# 设置第一天为星期天calendar.setfirstweekday(firstweekday=6)# 创建一个工作䈬wb = openpyxl.Workbook()# 遍历12个月for i in range(1, 13):
# 添加工作表
sheet = wb.create_sheet(index=0, title=str(i) + '月')
# 获取具体日期时间
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]
# 将0值变为空值
if 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)
# 单元格文字设置,右对齐,垂直居中
align = Alignment(horizontal='right', vertical='center')
# 单元格填充色属性设置
fill = PatternFill("solid", fgColor="B9EBF7")
# 对单元格进行颜色填充
for k1 in range(1, 100):
for k2 in range(1, 100):
sheet.cell(row=k1, column=k2).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)
# 设置列宽12
c_char = get_column_letter(k3)
sheet.column_dimensions[get_column_letter(k3)].width = 12
num += 1
# 设置行高30
for k4 in range(8, 14):
sheet.row_dimensions[k4].height = 30
# 合并单元格
sheet.merge_cells('I1:P20')
# 添加图片
img = Image('huge_2.jpg')
sheet.add_image(img, 'I1')# 添加年份及月份
sheet.cell(row=3, column=1).value = '2019年'
sheet.cell(row=4, column=1).value = str(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
PYthon学习企鹅裙:88198-2657  领取python自动化编程资料教程
# 保存文档wb.save('爱豆日历.xlsx')
Python资源分享qun 784758214 ,内有安装包,PDF,学习视频,这里是Python学习者的聚集地,零基础,进阶,都欢迎

最后来个小预览。

原来小F的爱豆是胡歌,那么你的又是谁。

还不去动动手,做出 属于自己的爱豆日历 。

这里小F由于时间关系,忘记给星期六、星期日这两列更改字体颜色。

小伙伴们在尝试的时候,记得更改!!!

/ 03 / 总结

本次的成果如下。

利用Python自动化生成逼格高的日历!简单又实用相关推荐

  1. python制作日历并保存成excel_利用Python自动化生成逼格高的日历!简单又实用

    本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...

  2. python写日历程序_利用Python自动化生成逼格高的日历!

    本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...

  3. python日历教程_利用Python自动化生成逼格高的日历!简单又实用

    本次内容有感于<Python编程快速上手-让繁琐工作自动化>. 根据书中的「处理Excel电子表格」章节内容,做出一份专属日历. 使用的模块为openpyxl,一个能读取和修改Excel电 ...

  4. python批量生成图片_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  5. python批量生成图_利用Python批量生成任意尺寸的图片

    实现效果 通过源图片,在当前工作目录的/img目录下生成1000张,分别从1*1到1000*1000像素的图片. 效果如下: 目录结构 实现示例 # -*- coding: utf-8 -*- imp ...

  6. python自动化生成请假条

    利用python自动化word操作: 生成一个请假条: 要求:制作一个自动生成请假条的word文档程序: 要有标题 : 正文部分通过输入姓名.请假原因.请假天数就能生成请假条. 自动填入当天日期. 自 ...

  7. python etree创建xml_利用 Python ElementTree 生成 xml的实例

    Python 处理 xml 文档的方法有很多,除了经典的 sax 和 dom 之外,还有一个 ElementTree. 首先 import 之: from xml.etree import Eleme ...

  8. 利用python随机生成姓名的实例教程

    本篇文章主要讲解:利用python随机生成姓名的实例教程 作者:任聪聪 整体思路 在我们生成姓名的时候,一般我们要考虑的是姓名的组合构成,姓+名,姓是固定的,名是随机的,故此我们可以通过随机调用常用汉 ...

  9. python开发autocad_利用Python自动化操作AutoCAD的实现

    1 Python自动绘图 在这里我主要运用了pyautocad库进行AutoCAD的自动化操作,pyautocad是一款功能非常强大的AutoCAD操作处理库,可以实现Python自动绘图.CAD图像 ...

最新文章

  1. MariaDB/MySQL从数据库中选择随机的行
  2. wxWidgets:wxObjectRefData类用法
  3. 【转】CT球管小知识--热容量
  4. 2.1基本算法之枚举_1812完美立方
  5. 有趣 IOS 开展 - block 使用具体解释
  6. 11 个让你吃惊的 Linux 终端命令-转
  7. 贝叶斯公式的直观理解(先验概率/后验概率)(未完)
  8. Chladni Figure CodeForces - 1162D (暴力,真香啊~)
  9. 简单的背包问题(c语言)
  10. Delft3D建模、水动力模拟方法及在地表水环境影响评价丨Delft3D标量输运、波浪、拉格朗日粒子及溢油模型
  11. 保存 Hexo 博客源码到 GitHub
  12. 检测服务器网站端口,检测服务器80端口
  13. hp 服务器 修复,Hp服务器 raid 磁盘故障数据库数据恢复过程
  14. linux下解压dmp文件怎么打开,查看dmp文件
  15. 用计算机弹出平凡之路节奏,计算机音乐谱平凡之路
  16. HPD健康产品申明认证
  17. border定义不同边框,虚线边框(dashed,dotted),实线边框(solid)
  18. 远程连接的电脑突然白屏了怎么办?
  19. 自编Photoshop简单教程
  20. EPICS ‘makeBaseApp’ IOC

热门文章

  1. 夫妻过河 c语言程序,毕业论文求解夫妻过河问题7喜欢就下吧(全文完整版)
  2. 阿里云“创客+”孵化基地落户长沙
  3. 微会动平台免费开放多种活动场景现场抽奖功能产品助力企业市场活动
  4. 基于几何特征的模板匹配原理
  5. 百万级数据的导出解决方案
  6. C语言——二分法求一元三次方程的方程根
  7. ROS——rosdep国内源更新
  8. MCU的最佳存储方案CS创世 SD NAND
  9. 150 元低成本改装家里的门锁,抓好软件硬件,向物联网出发
  10. 华为HCCDA——iot部分试题