版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第利用Python制作簡易的核酸檢測日歷目錄錄入數(shù)據(jù)制作日歷1.使用openpyxl創(chuàng)建表格2.定義表格初始化和單元格設(shè)置的函數(shù)3.實現(xiàn)日歷制作一年的日歷我的坐標(biāo)是深圳,2025年以來,大部分時候要求24小時,少部分時候要求48小時,更少的時候要求72小時,沒有更長的情況。
本文根據(jù)我的核酸檢測記錄,制作成日歷,將核酸檢測記錄可視化到日歷中。
錄入數(shù)據(jù)
核酸檢測記錄能查到的最早時間范圍是一個月,以前的檢測記錄沒有提前保存,所以先用8月份的數(shù)據(jù)制作日歷。
查詢8月份的檢測記錄,錄入到代碼中。
#coding=utf-8
fromdatetimeimportdatetime
#核酸檢測數(shù)據(jù),1表示當(dāng)天做了核酸,0表示當(dāng)天未做核酸
my_nucleic={
'date':[datetime.strftime(datetime(2025,8,i+1),'%Y-%m-%d')foriinrange(31)],
'nucleic':[1,1,0,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1]
}
如果當(dāng)天做了核酸,用1表示,如果當(dāng)天未做核酸,用0表示。
8月的日期使用Python標(biāo)準(zhǔn)庫datetime生成。
制作日歷
本文使用Python庫openpyxl在excel表格中生成日歷。
1.使用openpyxl創(chuàng)建表格
importopenpyxl
#創(chuàng)建一個workbook對象,而且會在workbook中至少創(chuàng)建一個表worksheet
wb=openpyxl.Workbook()
#獲取當(dāng)前活躍的worksheet,默認(rèn)就是第一個worksheet
ws=wb.active
openpyxl是Python中用于讀寫excel文件的庫,pipinstallopenpyxl安裝即可使用。
2.定義表格初始化和單元格設(shè)置的函數(shù)
fromopenpyxl.stylesimportPatternFill,Font,Alignment,Border,Side
definit_sheet(ws):
forrinrange(100):
forcinrange(100):
ws.cell(row=r+1,column=c+1).fill=PatternFill('solid',fgColor='000000')
defset_cell_style(ws,r,c,color):
ws.cell(row=r,column=c).fill=PatternFill('solid',fgColor=color)
ws.cell(row=r,column=c).font=Font(name="微軟雅黑",size=14,bold=True)
ws.cell(row=r,column=c).alignment=Alignment(horizontal='right',vertical='center')
side=Side(,color="004B3C")
ws.cell(row=r,column=c).border=Border(top=side,bottom=side,left=side,right=side)
定義一個將表格顏色填充成白色的函數(shù),對表格初始化處理,將背景設(shè)置成純白,日歷看起來更美觀。
定義一個用于處理單元格格式的函數(shù),后面直接調(diào)用函數(shù)給單元格設(shè)置格式,方便重復(fù)使用。
3.實現(xiàn)日歷
importcalendar
#將表格填充成白色
init_sheet(ws)
#設(shè)置年月單元格的邊框
side=Side(,color="004B3C")
forcolinrange(7):
ws.cell(row=1,column=col+1).border=Border(top=side,bottom=side,left=side,right=side)
#合并年月單元格
ws.merge_cells(start_row=1,start_column=1,end_row=1,end_column=7)
#寫入內(nèi)容和設(shè)置格式
ws.cell(row=1,column=1).value='2025年8月'
set_cell_style(ws,r=1,c=1,color='418CFA')
#寫入星期一至星期日,并設(shè)置格式
title_data=['星期一','星期二','星期三','星期四','星期五','星期六','星期日']
forcolinrange(7):
ws.cell(row=2,column=col+1).value=title_data[col]
set_cell_style(ws,r=2,c=col+1,color='418CFA')
#獲取一個月的天數(shù)和第一天是星期幾
monthday=calendar.monthrange(2025,8)
#設(shè)置日歷的日期
col,row=monthday[0],3
foriinrange(len(my_nucleic['date'])):
ifcol7:
ws.cell(row=row,column=col+1).value=i+1
col+=1
else:
col=0
row+=1
ws.cell(row=row,column=col+1).value=i+1
col+=1
#設(shè)置單元格格式
set_cell_style(ws,r=row,c=col,color='000000')
#根據(jù)核酸結(jié)果填充顏色
ifmy_nucleic['nucleic'][i]==1:
ws.cell(row=row,column=col).fill=PatternFill('solid',fgColor='009B3C')
#設(shè)置行高
foriinrange(1,row+1):
ws.row_dimensions[i].height=30
#保存表格
wb.save(filename='show_august_nucleic.xlsx')
wb.close()
日歷效果:
可以看到,8月份我只有4天沒有做核酸,大部分時間都是保持24小時。
代碼實現(xiàn)介紹:
先合并首行的前7列單元格,寫入年月,然后在第二行從左到右寫入星期一到星期日,并設(shè)置格式。使用Python的日歷庫calendar返回當(dāng)前月第一天是星期幾,然后確定日歷的1號的起始位置。從1號開始,依次在excel中寫入日期,當(dāng)列到達(dá)星期日時,換行并回到星期一的列。根據(jù)當(dāng)天是否做了核酸,給單元格填充背景顏色。本文中如果當(dāng)天做了核酸,則日期的背景設(shè)置為綠色(24小時核酸碼的顏色),如果未做核酸,則日期的背景設(shè)置為白色。最后將結(jié)果保存到excel文件中,打開excel文件即可看到制作的日歷。
制作一年的日歷
制作了一個月的日歷后,繼續(xù)擴展做一年的日歷,先看一下效果:
實現(xiàn)方式介紹:
數(shù)據(jù)補充,由于只能查到一個月的核酸記錄,所以本文除2025年8月外,其他月份的數(shù)據(jù)用隨機數(shù)生成。對制作一個月日歷的代碼進(jìn)行封裝,傳入年和月,就可以生成任意一個月的日歷。在excel文件中,自己設(shè)計一排展示幾個月,本文一排展示3個月。并計算每個月日歷的起始單元格位置。最后傳入年份,依次將一年12個月的日歷制作出來,展示在一個頁面上。只要有數(shù)據(jù),可以對任意一年的日歷進(jìn)行可視化。(代碼較長,可在文末獲取完整代碼)
按年的另一種展示方式:
frompyechartsimportoptionsasopts
frompyecharts.chartsimportCalendar
importpandasaspd
nucleic_df=pd.DataFrame()
foriinrange(12):
month_nucleic=made_data(2025,i+1)
month_df=pd.DataFrame(month_nucleic)
nucleic_df=pd.concat([nucleic_df,month_df])
data=[[row_data['date'],row_data['nucleic']]forrow_index,row_datainnucleic_df.iterrows()]
cal=Calendar(init_opts=opts.InitOpts(width='900px',height='500px'))
cal.add(
'',data,calendar_opts=opts.CalendarOpts(range_="2025",
daylabel_opts=opts.CalendarDayLabelOpts(first_day=1,name_map='cn'))
).set_series_opts(
label_opts=opts.LabelOpts(font_size=12)
).set_global_opts(
title_opts=opts.TitleOpts(title='核酸檢測日歷',pos_left='450',pos_top='0',
title_textstyle_opts=opts.TextStyleOpts(color='black',font_size=16)),
visualmap_opts=opts.VisualMapOpts(
max_=1,min_=0,orient="horizontal",is_piecewise=False,
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年冷鏈物流信息化管理系統(tǒng)升級冷鏈追溯系統(tǒng)創(chuàng)新應(yīng)用可行性研究
- 絞車操作工崗前工作水平考核試卷含答案
- 2026屆湖北省武漢市黃陂區(qū)漢口北高中數(shù)學(xué)高三上期末預(yù)測試題含解析
- 泥面塑工崗前基礎(chǔ)常識考核試卷含答案
- 江西省南昌市三校2026屆生物高三上期末經(jīng)典模擬試題含解析
- 煉廠氣加工工風(fēng)險評估考核試卷含答案
- 洗縮聯(lián)合擋車工安全培訓(xùn)效果競賽考核試卷含答案
- 安防無人機駕駛員安全意識強化競賽考核試卷含答案
- 球拍球網(wǎng)制作工安全素養(yǎng)測試考核試卷含答案
- 輻射環(huán)境監(jiān)測員安全行為能力考核試卷含答案
- 光伏發(fā)電安裝質(zhì)量驗收評定表
- AQ 1046-2007 地勘時期煤層瓦斯含量測定方法(正式版)
- 房屋過戶給子女的協(xié)議書的范文
- 超聲振動珩磨裝置的總體設(shè)計
- 新媒體藝術(shù)的發(fā)展歷程及藝術(shù)特征
- 醫(yī)保違規(guī)行為分類培訓(xùn)課件
- 講課學(xué)生數(shù)學(xué)學(xué)習(xí)成就
- 醫(yī)療器械法規(guī)對互聯(lián)網(wǎng)銷售的限制
- 西葫蘆栽培技術(shù)要點
- 系桿拱橋系桿預(yù)應(yīng)力施工控制要點
- 三亞市海棠灣椰子洲島土地價格咨詢報告樣本及三洲工程造價咨詢有限公司管理制度
評論
0/150
提交評論