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 += 1wb.save('E:\\青岛慧涵信息科技有限公司\\工资表-xg.xlsx')
五、其他设置
目前处理完成的文件格式使用的时默认格式,并没有使用对齐方式,本身工资条也没必要太花哨的格式,如果需要,也不要紧,pandas也可以满足你任意格式设置!这里就不展开了。只是这是源代码,如果是给非IT人员使用,那就使用 pyinstall打包个exe文件,那都不是事!
python小工具,15行代码秒出工资条相关推荐
- python代码300行程序_python小工具,15行代码秒出工资条
公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...
- python小游戏-16行代码实现3D撞球小游戏!-源码下载
python小游戏-16行代码实现3D撞球小游戏!-源码下载 所属网站分类: 资源下载 > python小游戏 作者:搞笑 链接: http://www.pythonheidong.com/bl ...
- 嘿嘿,几行代码秒出美女素描图
今天上班时,我正在敲代码.女朋友突然发了一张图片给我: "老公,我也想要一个这样的头像..." 后面跟着一个可怜的表情. 无奈,不管怎样我只好应承下来. 下班回到家中,我准备把这个 ...
- 嘿嘿!几行代码秒出美女素描图!
文 | 闲欢 来源:Python 技术「ID: pythonall」 今天上班时,我正在敲代码.女朋友突然发了一张图片给我: "老公,我也想要一个这样的头像..." 后面跟着一个可 ...
- MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘
MouseJack:利用15美元的工具和15行代码控制无线鼠标和键盘 Bastille的研究团队发现了一种针对蓝牙键盘鼠标的攻击,攻击者可以利用漏洞控制你的电脑操作.研究团队将此攻击命名为MouseJ ...
- Python到底有多强大?只需 15 行代码即可进行人脸检测
无论你是最近开始探索OpenCV还是已经使用它很长一段时间,在任何一种情况下,您都一定遇到过"人脸检测"这个词.随着机器变得越来越智能,它们模仿人类行为的能力似乎也在增加,而人脸检 ...
- Python爬虫利用18行代码爬取虎牙上百张小姐姐图片
Python爬虫利用18行代码爬取虎牙上百张小姐姐图片 下面开始上代码 需要用到的库 import request #页面请求 import time #用于时间延迟 import re #正则表达式 ...
- 【python】15行代码实现猫脸检测(opencv)
文章目录 1. 项目简介 2. 项目地址 3. 依赖模块 4. 完整代码 5. 必要组件 5.1. haar级联特征分类器(精度高) 5.2. lbp级联特征分类器(速度快) 6. 成果展示 6.1. ...
- 【python】15行代码实现人脸检测(opencv)
文章目录 1. 项目简介 2. 项目地址 3. 依赖模块 4. 完整代码 5. 必要组件 5.1. haar级联特征分类器(精度高) 5.2. lbp级联特征分类器(速度快) 6. 成果展示 6.1. ...
最新文章
- 删除linux系统中的ifcfg-eth0.bak
- linux内核分析 网络九,“Linux内核分析”实验报告(九)
- Python教程:os 与 sys 模块详细用法
- mybatis+spring报错PropertyAccessException 1: org.springframework.beans.MethodInvocationException
- Flutter快速构建集美观与⾼性能于⼀体的APP
- 前端学习(591):source面板介绍
- 通俗解释主要编程语言及其用途
- html中th 与thead tbody的 使用
- oracle中master实例,Oracle10g/11g RAC数据库中的Master实例、Owner实例和Past Image的概念PART2...
- 华东理工大学和暨南大学计算机考研,2016华东理工大学VS暨南大学 孰强孰弱?...
- MVC+EF 入门教程(四)
- 超效率dea matlab,MATLAB在超效率DEA模型中的应用研究
- 【Android工具】更新简单好用IP端口扫描工具Fing Pro,网络设备查看工具,内网ip查询ip扫描工具,网络端口查询工具...
- Firefox 4.0浏览器正式版再次推迟发布
- 数字逻辑电路—全减器的实现
- 切换IP配置的bat批处理命令
- PDF如何编辑,怎么修改PDF中的文字
- 电子电器外贸行业管理解决方案丨汇信
- HTML网页中显示图片(相对路径 绝对路径)
- 网页中嵌入flash文件的几种方法
热门文章
- R语言 大视角看R及R初探(一)
- GeneratorConfig.xml文件配置详解及IDEA中的使用,处女座小编整理,值得一看
- 案例报道:索尼工程投影机郎酒集团展厅
- history.go history.forward history.back
- dump出Linux内核所有的slab对象缉拿内核Rootkit
- CSV格式清洗与转换
- 地质学与计算机的联系,计算机与地质学
- 能让Jellyfin直接挂载阿里云盘的aliyundrive-fuse
- 【HTML】HTML网页设计---模仿电影网站
- 论文解读《Relevance-CAM: Your Model Already Knows Where to Look》–阅读笔记