刷公眾號時看到一篇介紹制作愛豆日歷的文章昔善,我立馬動手做起來了......追《怦然心動》已經(jīng)快兩年了,特別喜歡小企鵝和江哥有愛的互動塘秦,所以我做了他們的專屬日歷~
怦然心動~.png
日歷效果圖如下:
效果圖.png
使用的模塊為openpyxl定踱,一個能讀取和修改Excel電子表格的Pyhton模塊。用它能實現(xiàn)自動化處理表格信息瓶籽,擺脫無趣無味的重復(fù)工作匠童。此外還有calendar模塊,通過該模塊生成日歷信息塑顺。最后利用openpyxl和calendar庫汤求,實現(xiàn)自動化生成怦然心動漫畫的日歷。
calendar庫主要是生成日歷信息严拒。代碼如下:
import calendar
calendar.setfirstweekday(firstweekday=6)
print(calendar.calendar(2019, w=1, l=1, c=5))
輸出結(jié)果如下:
2019日歷.png
制作怦然心動的日歷主要是對單元格進(jìn)行文本添加扬绪,字體設(shè)置,背景設(shè)置裤唠,圖片設(shè)置等挤牛。
詳細(xì)代碼如下:
首先導(dǎo)入需要的庫
from openpyxl.styles import Alignment, PatternFill, Font
from openpyxl.utils import get_column_letter
from openpyxl.drawing.image import Image
import openpyxl
import calendar
然后創(chuàng)建工作簿遍歷12個月,我在此日歷中將第一天設(shè)置為星期天
calendar.setfirstweekday(firstweekday=6)
wb = openpyxl.Workbook()
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值變?yōu)榭罩? 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
# 設(shè)置字體
sheet.cell(row=j + 9, column=k + 1).font = Font(u'微軟雅黑', size=11)
對單元格進(jìn)行設(shè)置及顏色填充
# 單元格文字設(shè)置,右對齊,垂直居中
align = Alignment(horizontal='right', vertical='center')
# 單元格填充色屬性設(shè)置
fill = PatternFill("solid", fgColor="FFFFF0")
# 對單元格進(jìn)行顏色填充
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)
# 設(shè)置列寬12
c_char = get_column_letter(k3)
sheet.column_dimensions[get_column_letter(k3)].width = 12
num += 1
# 設(shè)置行高30
for k4 in range(8, 14):
sheet.row_dimensions[k4].height = 30
最后添加圖片并設(shè)置文本屬性
# 合并單元格
sheet.merge_cells('I1:P20')
# 添加圖片
img = Image('PR2.jpg')
sheet.add_image(img, 'I1')
# 添加年份及月份
sheet.cell(row=3, column=1).value = '2019年'
sheet.cell(row=4, column=1).value = str(i) + '月'
# 設(shè)置年份及月份文本屬性
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('2怦然心動日歷.xlsx')
怦然心動.png
怦然心動2.png
這樣就生成專屬自己的日歷了种蘸,有興趣的小伙伴可以嘗試做一做哦~