30行代碼幫祕書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

事情是這樣的,昨天下班的時候,偶然發現秘書小姐姐情緒很不好,本著樂於助人的原則,我主動湊上前去獻溫暖

經過小姐姐的一番訴苦,原來是這樣,馬上要下班了,老闆卻突然發來一個表格,內容如下圖:

30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

大概有300名左右的人員信息,老闆要求小姐姐將這些信息按照如下模板進行填寫,每人1張表,今天弄完:

30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

就算1張表格半分鐘,300張表格搞完也要2個半小時

咱怎麼能讓小姐姐受這罪呢,於是很豪爽的把這件事攬下來了,當時小姐姐看我的眼神都不一樣了

最後我用30行python代碼,然後花了5分鐘把這些表格自動填好了,具體內容如下:

1.用xlwings打開工作簿

<code>import xlwings as xw
app=xw.App(visible=True,add_book=False)
workbook=app.books.open(r'D:\\數據分析\\27.我用python幫小姐姐填了上百份表格\\人員信息.xlsx')
sheet=workbook.sheets[0]  #選中第一個表格
/<code>

2.循環每行的數據

<code>info = sheet.used_range
for i in info.raw_value[1:]:
    print(i)
/<code>
<code>('張三', '男', 28.0, 177.0, 150.0, '本科', '否', '漢族', '北京', 8.0)
('李四', '男', 31.0, 165.0, 130.0, '本科', '是', '漢族', '上海', 5.0)
('王二', '男', 40.0, 182.0, 162.0, '研究生', '是', '漢族', '廣東廣州', 2.0)
('李潔', '女', 25.0, 163.0, 110.0, '研究生', '否', '漢族', '廣東深圳', 8.0)
('張茹', '女', 36.0, 168.0, 120.0, '研究生', '是', '漢族', '江蘇南京', 4.0)
('張五', '男', 35.0, 165.0, 120.0, '本科', '否', '漢族', '河南鄭州', 2.0)
('李傑', '男', 36.0, 163.0, 142.0, '本科', '是', '漢族', '河北石家莊', 1.0)
('王帥', '男', 37.0, 161.0, 94.4, '研究生', '是', '漢族', '遼寧瀋陽', 6.0)
('李一', '女', 38.0, 159.0, 86.4, '研究生', '否', '漢族', '山東濟南', 5.0)
('張霞', '女', 39.0, 157.0, 78.4, '研究生', '是', '漢族', '湖南長沙', 4.0)

('王萬利', '男', 40.0, 155.0, 70.4, '本科', '否', '漢族', '黑龍江哈爾濱', 1.0)
('李慶', '男', 41.0, 153.0, 62.4, '本科', '是', '漢族', '吉林長春', 6.0)
('王厚', '男', 42.0, 151.0, 54.4, '研究生', '是', '漢族', '湖北武漢', 5.0)
('曾梅', '女', 43.0, 149.0, 46.4, '研究生', '否', '漢族', '海南海口', 7.0)/<code>

我們可以發現,數據以元組方式輸出,下一步利用就很方便了

3.打開個人信息模板,將信息填入

<code>for i in info.raw_value[1:]:
    app=xw.App(visible=True,add_book=False)
    workbook=app.books.open(r'D:\\數據分析\\27.我用python幫小姐姐填了上百份表格\\個人信息模板.xlsx')
    sheet=workbook.sheets[0]
    sheet['B1'].value=i[0]
    sheet['D1'].value=i[1]
    sheet['F1'].value=i[8]
    sheet['H1'].value=i[2]
    sheet['B2'].value=i[9]
    sheet['D2'].value=i[5]
    sheet['F2'].value=i[6]
    sheet['H2'].value=i[7]
/<code>
30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

這一步也很好理解,就是把元組中的個人信息提取出來,放入個人信息模板相應單元格位置中,但是格式不太好看,需要完善一下。

4.設置單元格格式

<code>list_cell=['B1','D1','F1','H1','B2','D2','F2','H2']#單元格位置
for j in list_cell:
        sheet[j].api.Font.Name='楷體'   #設置字體
        sheet[j].api.Font.Size=14      #設置字號
        #設置文本水平對齊方式為居中
        sheet[j].expand('table').api.HorizontalAlignment=xw.constants.HAlign.xlHAlignCenter
        #設置文本水平對齊方式為居中
        sheet[j].expand('table').api.VerticalAlignment=xw.constants.VAlign.xlVAlignCenter
/<code>
30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心

分別設置字體、字號和單元格上下左右居中

5.將表格另存重命名並關閉

<code>workbook.save(r'D:\\數據分析\\27.我用python幫小姐姐填了上百份表格\\{}.xlsx'.format(i[0]))  #以名字命名
workbook.close()
app.quit()
/<code>
<code>

大功告成,一起來感受一下python自動填表的速度吧:
/<code>
30行代碼幫秘書小姐姐填了上百份表格,成功俘獲了小姐姐的芳心


好了,今天先寫到這,我要和小姐姐約會去了~



-完-


完整代碼請掃碼關注公眾號【python數據分析之禪】並回復填表獲取


分享到:


相關文章: