利用Python自动化生成爱豆日历详解_第1页
利用Python自动化生成爱豆日历详解_第2页
利用Python自动化生成爱豆日历详解_第3页
利用Python自动化生成爱豆日历详解_第4页
利用Python自动化生成爱豆日历详解_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第利用Python自动化生成爱豆日历详解目录1.科普2.爱豆日历3.总结本次内容有感于《Python编程快速上手-让繁琐工作自动化》。

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

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

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

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

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

1.科普

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

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

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

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

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

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

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

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

importcalendar

#设置每周的起始日期码,为星期天

calendar.setfirstweekday(firstweekday=6)

#返回2025年年历

print(calendar.calendar(2025,w=2,l=1,c=6))

输出如下

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

#返回每月每列信息

print(calendar.monthcalendar(2025,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。

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

2.爱豆日历

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

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

详细代码如下。

fromopenpyxl.stylesimportAlignment,PatternFill,Font

fromopenpyxl.utilsimportget_column_letter

fromopenpyxl.drawing.imageimportImage

importopenpyxl

importcalendar

#设置第一天为星期天

calendar.setfirstweekday(firstweekday=6)

#创建一个工作䈬

wb=openpyxl.Workbook()

#遍历12个月

foriinrange(1,13):

#添加工作表

sheet=wb.create_sheet(index=0,title=str(i)+'月')

#获取具体日期时间

forjinrange(len(calendar.monthcalendar(2025,i))):

forkinrange(len(calendar.monthcalendar(2025,i)[j])):

value=calendar.monthcalendar(2025,i)[j][k]

#将0值变为空值

ifvalue==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")

#对单元格进行颜色填充

fork1inrange(1,100):

fork2inrange(1,100):

sheet.cell(row=k1,column=k2).fill=fill

#添加星期几信息行

days=['星期日','星期一','星期二','星期三','星期四','星期五','星期六']

num=0

fork3inrange(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

fork4inrange(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='2025年'

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

#保存文档

wb.save('爱豆日历.xlsx')

最后来个小预览。

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

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

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

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

3.总结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论