您好,登錄后才能下訂單哦!
今天小編給大家分享一下怎么用Python實現一本個性化日歷的相關知識點,內容詳細,邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。
開始之前,你要確保Python和pip已經成功安裝在了電腦上。如果沒有,可以在公眾號“Crossin的編程教室”里回復關鍵字 安裝,查看相關演示教程。另外,如果你用Python的目的是做數據分析,可以直接安裝Anaconda,
Windows環境下打開 CMD (開始—運行—CMD),蘋果系統環境下請打開 終端 Terminal (command+空格輸入Terminal),準備開始輸入命令安裝依賴。
在終端輸入以下命令安裝所需要的依賴模塊:
pip install openpyxl
看到 Successfully installed xxx 則說明安裝成功。
首先,繪制一份日歷,得先知道每個月份有多少天,每天都是星期幾,可以使用calendar包獲得這些信息:
calendar.monthcalendar(2021, i)
通過這個函數,我們能得到 2021年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(2021, i) for row in range(len(month_calendar)): for col in range(len(month_calendar[row])): value = month_calendar[row][col]
Openpyxl模塊提供了許多方便的功能,比如設置單元格格式、調整單元格顏色、添加圖片等。
基于Openpyxl,繪制一份日歷最方便的做法是先將日期等信息繪制到excel中,然后再從excel中提取圖片出來。
Openpyxl怎么用?給大家一個設置單元格字體的例子:
sheet.cell(row=j + 4 + count, column=k + 2).font = Font(u'微軟雅黑', color=text_color , size=14)
sheet是對應的表格,row和column就是某個單元格的位置,然后對font屬性進行設置,調用Font類并設置參數。
如果大家不知道Font類有什么參數,可以參考openpyxl官方文檔。
你可以看到里面大部分單元格的屬性都是類似上面那樣設置的,非常簡單。
為了給每個月份添加一份裝飾圖,需要向Excel中插入圖片,幸運的是,Openpyxl提供了很方便的插入方法:
# 添加圖片 img = Image(f’12graphs/{i}.jpg’) sheet.add_image(img, ‘I2’)
12graphs下存放了12個月份的圖,循環遍歷每張表格,就能將對應的圖表添加并渲染到 I2 格子上.
你也可以自行DIY,比如換上女票的照片,然后作為禮物送給她
請注意圖片的名稱不能過錯,必須是從1到12的jpg格式。
差點忘了告訴大家了,我們的日歷能支持備注哦,在調用get_month_xlsx得到文檔前,通過set_information()放入你某一天想做的事情即可。如:
set_information('2021-12-1', '考試') set_information('2021-12-1', '約會')
簡單的代碼講解如上,詳細代碼可以在公眾號后臺回復 日歷 下載查看。
終于到了激動人心的運行代碼部分了,運行這份代碼,你只需要在本地 cmd/terminal 進入該項目源代碼文件夾運行:
python calendary.py
會自動生成一個excel表格叫my_calendary.xlsx,這就是我們生成的日歷了。
怎樣從里面把日歷提取成圖片?
很簡單,復制你想要的部分,粘貼到任何聊天窗口就能變成一張圖片!
以上就是“怎么用Python實現一本個性化日歷”這篇文章的所有內容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學習更多的知識,請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。