




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第利用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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 餐厅火灾爆炸应急预案(3篇)
- 财务火灾应急预案演练方案(3篇)
- VB常见错误试题及答案解读
- 行政法学研究成就与试题答案总结
- 2025年软考备考计划优化试题及答案
- 教学区火灾专项应急预案(3篇)
- 火灾应急预案适用领域(3篇)
- 信息系统实施技术试题及答案
- 高考数学总结与复习试题及答案
- 网络管理员职场秘籍试题及答案
- 船舶维修合同协议书
- 《比亚迪品牌历史课件》课件
- 小学心理健康家长会课件
- 2025年4月自考00160审计学答案含评分参考
- 购买木地板合同协议
- 严重开放性肢体创伤早期救治专家共识解读
- 速卖通开店考试最权威答案
- 输液导管相关静脉血栓形成中国专家共识 课件
- 国企岗位笔试题目及答案
- 2024年泉州实验中学初一新生入学考试数学试卷
- 航模课程-飞翔的梦想
评论
0/150
提交评论