python代码300行程序_python小工具,15行代码秒出工资条
公司工資條經常使用Excel制作,但是每個月都要做一遍,能不能用python寫個程序自動化完成這想工作?當然可以,而且只是分分鐘的事!
先來看看原始數據是什么樣子:
最后做成的效果:
使用Excel每次都需要手動修改一遍,對python來說是很簡單的,15行代碼就可以秒出一個工資條。
一、操作邏輯
邏輯本身非常簡單,其實就是在每行之間插入一個空行和一個表頭行
二、代碼模塊
首先是讀取Excel表格,讀取表格所有內容,python讀取excel的方式有很多,最簡潔的就是pandas,pandas可以通過read_excel()和to_excel()非常簡單的讀寫excel。讀取數據一行搞定:
import pandas
excel_data = pandas.read_excel('E:\\python_practice\\工資表.xlsx') # 讀取信息
print(excel_data) # 輸出結果
?
序號 姓名 部門 職務 基本工資 工齡津貼 崗位補貼 獎金 應發 五險一金 實發
0 1 張三 人事部 經理 8600 700 300 5000 14600 1800 12800
1 2 李四 行政部 副經理 8600 700 300 3000 12600 1800 10800
2 3 王五 市場部 經理 8600 700 300 5000 14600 1800 12800
3 4 趙六 市場部 職員 5600 300 100 1000 7000 1300 5700
4 5 孫七 市場部 職員 5600 300 100 1000 7000 1300 5700
插入行其實只是我們人為的動作,python是可以單獨插入來實現,但是我們可以逐行寫入文件,直接在寫文件時多寫兩行即可,省去了操作數據插入的過程(實際上即便單獨插入用pandas也是秒完成的,能少一步就不多一步),只是涉及到逐行插入,逐行寫入to_excel()是不行的,可以使用openoyxl,好的,我們先來把重復插入的兩行創建出來:
excel_head = list(excel_data.columns)
excel_null = ['', '', '', '', '', '', '', '', '', '', '']
導入 openpyxl,并創建對象
import openpyxl
wb = openpyxl.Workbook() # 創建一個對象
sheet = wb.active
三、循環寫入文件
使用雙層for循環寫數據到文件,只是這里思維邏輯上有一點比較難理解,就是新文件的行序號和源數據的行序號的對應關系,這涉及到取數據賦值,代碼如下:
row = 0
for r in range(0, excel_data.shape[0] * 3, 3):
for c in range(excel_data.shape[1]):
sheet.cell(r + 1, c + 1, value=excel_head[c])
sheet.cell(r + 2, c + 1, value=excel_data.iloc[row, c])
sheet.cell(r + 3, c + 1, value=excel_null[c])
row += 1
四、完整代碼?
別看上面說了很多,實際代碼只需要15行!
import pandas
import openpyxl
excel_data = pandas.read_excel('E:\\青島慧涵信息科技有限公司\\工資表.xlsx') # 讀取信息
excel_head = list(excel_data.columns)
excel_null = ['', '', '', '', '', '', '', '', '', '', '']
wb = openpyxl.Workbook() # 創建一個對象
sheet = wb.active
row = 0
for r in range(0, excel_data.shape[0] * 3, 3):
for c in range(excel_data.shape[1]):
sheet.cell(r + 1, c + 1, value=excel_head[c])
sheet.cell(r + 2, c + 1, value=excel_data.iloc[row, c])
sheet.cell(r + 3, c + 1, value=excel_null[c])
row += 1
wb.save('E:\\青島慧涵信息科技有限公司\\工資表-xg.xlsx')
五、其他設置
目前處理完成的文件格式使用的時默認格式,并沒有使用對齊方式,本身工資條也沒必要太花哨的格式,如果需要,也不要緊,pandas也可以滿足你任意格式設置!這里就不展開了。只是這是源代碼,如果是給非IT人員使用,那就使用 pyinstall打包個exe文件,那都不是事!
原文鏈接:https://blog.csdn.net/wuwei_201/article/details/108040661
總結
以上是生活随笔為你收集整理的python代码300行程序_python小工具,15行代码秒出工资条的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 重装系统怎么分区 重装系统如何进行磁盘分
- 下一篇: 海尔台式机boot怎么设置u盘启动 海尔