Python利用xlwings實現(xiàn)考勤表制作
選取一個表格
從搜索結(jié)果里隨機取得一張表格類型的圖片。
分析結(jié)構(gòu)
依然可以將這個表格分為兩個部分,上部是標題和表頭,可以看出來有4行;下面數(shù)據(jù)區(qū)域是31行,可能有31個學生。列有13列,寫上了星期,這是一周的,明顯沒考慮到現(xiàn)在還有調(diào)休這種東西。 現(xiàn)在可以先自己做做看。
這一次換個生產(chǎn)的方式,先處理單元格的合并,再繪制框線,接著填入文字并調(diào)整對齊,處理文字和單元格的顏色,最后適當調(diào)整高度和寬度,生成相似的表格。
處理單元格
1,2行各自合并為一個單元格,3,4行根據(jù)實際圖片合并。后面31行無變化。
# 前兩行 ws.range((1, 1), (1, 13)).merge() ws.range((2, 1), (2, 13)).merge() # 三四行 ws.range((3, 1), (4, 1)).merge() ws.range((3, 2), (4, 2)).merge() # 5個星期 ws.range((3, 3), (3, 4)).merge() ws.range((3, 5), (3, 6)).merge() ws.range((3, 7), (3, 8)).merge() ws.range((3, 9), (3, 10)).merge() ws.range((3, 11), (3, 12)).merge() ws.range((3, 13), (4, 13)).merge()
框線繪制
表頭獨立的粗框線,備注區(qū)域邊緣粗框線,整個數(shù)據(jù)區(qū)域邊界也是粗框線,備注內(nèi)部是沒有框線的。特定的單元格有個斜線。
ws.range((3, 1), (35, 13)).api.Borders(11).LineStyle = 1 ws.range((3, 1), (35, 13)).api.Borders(12).LineStyle = 1 # 3,4 行上下邊界 ws.range((3, 1), (4, 13)).api.Borders(8).LineStyle = 1 ws.range((3, 1), (4, 13)).api.Borders(9).LineStyle = 1 ws.range((3, 1), (4, 13)).api.Borders(8).Weight = 3 ws.range((3, 1), (4, 13)).api.Borders(9).Weight = 3 # 13列備注左右邊界 ws.range((3, 13), (35, 13)).api.Borders(7).LineStyle = 1 ws.range((3, 13), (35, 13)).api.Borders(10).LineStyle = 1 ws.range((3, 13), (35, 13)).api.Borders(7).Weight = 3 ws.range((3, 13), (35, 13)).api.Borders(10).Weight = 3 # 數(shù)據(jù)區(qū)域 左下邊界 ws.range((3, 1), (35, 13)).api.Borders(7).LineStyle = 1 ws.range((3, 1), (35, 13)).api.Borders(9).LineStyle = 1 ws.range((3, 1), (35, 13)).api.Borders(7).Weight = 3 ws.range((3, 1), (35, 13)).api.Borders(9).Weight = 3 # 單個斜線 ws.range((3, 2), (4, 2)).api.Borders(5).LineStyle = 1
填入文字并設(shè)置格式
照圖片填入對應文字即可。僅第二行是靠右的,所以可以先全設(shè)置居中,再設(shè)置第二行,并對標題行文字設(shè)置顏色和尺寸。遲到的圖形實在打不出來,換了個別的符號。不要忘了我們是在寫代碼,能簡化的重復步驟就簡化,這里將數(shù)字序號按照順序填入了表格中。 帶斜線表頭的單元格里,文字可以加入換行符,顯示的時候也是換行的,借助空格輔助,借此控制兩個文字的位置關(guān)系。
設(shè)置單元格顏色
對表題的單元格顏色設(shè)置。顏色可以通過一些網(wǎng)頁工具直接提取到
ws.range((3, 1), (4, 13)).color = '#a6c7c0'
設(shè)置行高與列寬
這步驟就需要不斷調(diào)試了。
最終成果
看上去還是很像的
到此這篇關(guān)于Python利用xlwings實現(xiàn)考勤表制作的文章就介紹到這了,更多相關(guān)Python xlwings制作考勤表內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
python判斷windows系統(tǒng)是32位還是64位的方法
這篇文章主要介紹了python判斷windows系統(tǒng)是32位還是64位的方法,實例分析了兩種解決方法,非常簡單實用,需要的朋友可以參考下2015-05-05Python數(shù)據(jù)結(jié)構(gòu)棧實現(xiàn)進制轉(zhuǎn)換簡單示例
眾所周知計算機的內(nèi)存都是以二進制的形式進行數(shù)據(jù)存儲,下面這篇文章主要給大家介紹了關(guān)于Python數(shù)據(jù)結(jié)構(gòu)棧實現(xiàn)進制轉(zhuǎn)換的相關(guān)資料,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2023-02-02基于Python實現(xiàn)簡單的漢字拼音轉(zhuǎn)換工具
將漢字轉(zhuǎn)為拼音,可以用于批量漢字注音、文字排序、拼音檢索文字等常見場景。現(xiàn)在互聯(lián)網(wǎng)上有許多拼音轉(zhuǎn)換工具,基于Python的開源模塊也不少,本文將利用pypinyin模塊制作簡單的漢字拼音轉(zhuǎn)換工具,感興趣的可以了解一下2022-09-09pymysql 插入數(shù)據(jù) 轉(zhuǎn)義處理方式
今天小編就為大家分享一篇pymysql 插入數(shù)據(jù) 轉(zhuǎn)義處理方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03python 使用re.search()篩選后 選取部分結(jié)果的方法
今天小編就為大家分享一篇python 使用re.search()篩選后 選取部分結(jié)果的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-11-11