一缠局、準(zhǔn)備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上噢考润,如果沒有,進(jìn)行安裝读处。如果你用Python的目的是數(shù)據(jù)分析糊治,可以直接安裝Anaconda
Windows環(huán)境下打開Cmd(開始—運行—CMD),蘋果系統(tǒng)環(huán)境下請打開Terminal(command+空格輸入Terminal)罚舱,準(zhǔn)備開始輸入命令安裝依賴井辜。
當(dāng)然,我更推薦大家用VSCode編輯器管闷,把本文代碼Copy下來粥脚,在編輯器下方的終端運行命令安裝依賴模塊,多舒服的一件事啊包个,在終端輸入以下命令安裝所需要的依賴模塊:
pip install openpyxl
看到 Successfully installed xxx 則說明安裝成功刷允。
二、代碼說明
1. 獲取日期
首先碧囊,繪制一份日歷树灶,得先知道每個月份有多少天,每天都是星期幾糯而,可以使用calendar包獲得這些信息:
calendar.monthcalendar(2022, i)
通過這個函數(shù)天通,我們能得到 2022年i月的日歷,它類似一個j*k的矩陣熄驼,因此可以這樣遍歷得到每一個日期:
# calendar.monthcalendar 獲得的值類似于:
# [[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]]
# 從左至右為星期日到星期六
month_calendar = calendar.monthcalendar(2022, i)
forrow?inrange(len(month_calendar)):
forcol?inrange(len(month_calendar[row])):
value = month_calendar[row][col]
2.?繪制得到日歷
Openpyxl模塊提供了許多方便的功能像寒,比如設(shè)置單元格格式烘豹、調(diào)整單元格顏色、添加圖片等诺祸。
基于Openpyxl吴叶,繪制一份日歷最方便的做法是先將日期等信息繪制到excel中,然后再從excel中提取圖片出來序臂。
Openpyxl怎么用蚌卤?給大家一個設(shè)置單元格字體的例子:
sheet.cell(row=j +?4+ count, column=k +?2).font = Font(u'微軟雅黑', color=text_color , size=14)
sheet是對應(yīng)的表格,row和column就是某個單元格的位置奥秆,然后對font屬性進(jìn)行設(shè)置逊彭,調(diào)用Font類并設(shè)置參數(shù)。
如果大家不知道Font類有什么參數(shù)构订,可以參考o(jì)penpyxl官方文檔:https://openpyxl.readthedocs.io/en/stable/
你可以看到里面大部分單元格的屬性都是類似上面那樣設(shè)置的侮叮,非常簡單。
3. 作品是每個月份都有一個圖在旁邊做裝飾
為了給每個月份添加一份裝飾圖悼瘾,需要向Excel中插入圖片囊榜,幸運的是,Openpyxl提供了很方便的插入方法:
# 添加圖片
img = Image(f'12graphs/{i}.jpg')
sheet.add_image(img,?'I2')
12graphs下存放了12個月份的圖亥宿,循環(huán)遍歷每張表格卸勺,就能將對應(yīng)的圖表添加并渲染到?I2?格子上.
如果你要自行DIY,請注意圖片的名稱不能過錯烫扼,必須是從1到12的jpg格式曙求。
4. 我們還有一個神秘功能
差點忘了告訴大家了,我們的日歷能支持備注哦映企,在調(diào)用get_month_xlsx得到文檔前悟狱,通過set_information()放入你某一天想做的事情即可。如:
set_information('2022-12-1',?'考試')
set_information('2022-12-1',?'約會')
簡單的代碼講解如上堰氓,詳細(xì)代碼可以在【Python實用寶典】公眾號后臺回復(fù)日歷?下載查看挤渐。
三、運行代碼
終于到了激動人心的運行代碼部分了双絮,運行這份代碼浴麻,你只需要在本地cmd/terminal進(jìn)入該項目源代碼文件夾運行:
pythoncalendary.py
會自動生成一個excel表格叫my_calendary.xlsx,這就是我們生成的日歷了掷邦。
怎樣從里面把日歷提取成圖片白胀?
很簡單,復(fù)制拉取你想要的部分抚岗,粘貼到任何聊天窗口就能變成一張圖片或杠!
大家可以閱讀代碼,根據(jù)自己喜好嘗試設(shè)置背景色宣蔚、邊框色向抢、交替色和圖片认境。
我們的文章到此就結(jié)束啦,如果你喜歡今天的Python 實戰(zhàn)教程挟鸠,請持續(xù)關(guān)注我叉信。
原創(chuàng)不易,希望你能在下面點個贊和在看支持我繼續(xù)創(chuàng)作艘希,謝謝硼身!