python代码300行程序_python小工具,15行代码秒出工资条

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1d2VpXzIwMQ==,size_16,color_FFFFFF,t_70#pic_center公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事!

先来看看原始数据是什么样子:

20200816183728706.png#pic_center最后做成的效果:

watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3d1d2VpXzIwMQ==,size_16,color_FFFFFF,t_70#pic_center

使用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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/513114.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

全链路压测体系建设方案的思考与实践

简介: 在阿里淘宝双11 的过程中,长期以来都是在生产环节做全链路压测的,通过实践我们发现在生产环境中做压测,实际上会和一个 IT 组织的结构、成熟度、流程等紧密相关,所以我们把全链路压测从简单的制作范围内脱离出来…

工业互联网标识解析企业节点_丰尚公司获批建设国家工业互联网标识解析二级节点...

11月12日,从江苏省工业和信息化厅获悉,丰尚公司获批建设国家工业互联网标识解析二级节点!本次获批的节点是:丰尚云行业工业互联网标识解析二级节点,主要应用于饲料、粮油、食品加工等领域。依托丰尚公司行业多年来智能…

低代码发展系列专访之三:低代码平台会成为企业数字化基础设施么?

话题: 低代码专访前言:2019年开始,低代码爆火。有人认为它是第四代编程语言,有人认为它是开发模式的颠覆,也有人认为是企业管理模式的变革……有很多声音,社区讨论很热烈。CSDN随后展开低代码平台产品系列活…

Flink+Hologres亿级用户实时UV精确去重最佳实践

简介: FlinkHologres亿级用户实时UV精确去重最佳实践 UV、PV计算,因为业务需求不同,通常会分为两种场景: 离线计算场景:以T1为主,计算历史数据实时计算场景:实时计算日常新增的数据&#xff0…

如何评估Serverless服务能力,这份报告给出了40条标准

简介: 如今,已经有评测机构给出了40条标准来对Serverless的服务能力进行评估,这些评估细则既是技术生态繁荣发展的一种表现,也可以作为新进入者评估Serverless落地成效的一种参考依据。 编者按:两年前,我们…

Redis 分布式锁的正确实现原理演化历程与 Redisson 实战总结

作者 | 码哥来源 | 码哥字节❝可能是最完善的 Redis 分布式锁原理与实战总结,建议收藏。Redis 分布式锁使用 SET 指令就可以实现了么?在分布式领域 CAP 理论一直存在。分布式锁的门道可没那么简单,我们在网上看到的分布式锁方案可能是有问题的…

OceanBase时序数据库CeresDB正式商用 为用户提供安全可靠的数据存储管理服务

简介: OceanBase完成OLAP和OLTP双重能力并行后,向数据管理领域多模方向迈出第一步。 近日,在数据库OceanBase3.0峰会上,OceanBase CEO杨冰宣布首个时序数据库产品CeresDB正式商用。该数据库将为用户提供安全可靠的数据查询和存储…

html伸缩布局,CSS3 伸缩布局(一)

CSS3引入了一种新的布局模式——Flexbox布局,即伸缩布局盒模型(Flexible Box),用来提供一个更加有效的方式制定、调整和分布一个容器里项目布局,即使它们的大小是未知或者动态的,这里简称为Flex。Flexbox布局常用于设计比较复杂的…

从0开始:500行代码实现 LSM 数据库

简介: LSM-Tree 是很多 NoSQL 数据库引擎的底层实现,例如 LevelDB,Hbase 等。本文基于《数据密集型应用系统设计》中对 LSM-Tree 数据库的设计思路,结合代码实现完整地阐述了一个迷你数据库,核心代码 500 行左右&#…

从 Docker 的信号机制看容器的优雅停止

作者 | Addo Zhang来源 | 云原生指北有太多的文章介绍如何运行容器,然而如何停止容器的文章相对少很多。根据运行的应用类型,应用的停止过程非常重要。如果应用要写文件,停止前要保证正确刷新数据并关闭文件;如果是 HTTP 服务&…

使用 Arthas 排查开源 Excel 组件问题

简介: 有了实际的使用之后,不免会想到,Arthas 是如何做到在程序运行时,动态监测我们的代码的呢?带着这样的问题,我们一起来看下 Java Agent 技术实现原理。 背景介绍 ​ 项目中有使用到 com.github.dream…

如何选择python书籍_关于 Python 的经典入门书籍有哪些?

展开全部 关于Python,是最近最火最的编程语言e68a843231313335323631343130323136353331333365643631,挺多人都在学习的,关于它的入门书籍,我大概推荐以下几本: 首先我介绍的是《Python基础教程(第2版修订版)》&#x…

“融合、智能、绿色”施耐德电气线上工博以全生命周期解决方案助推数字化

原定于12月1-5日在上海举办的第23届中国国际工业博览会因为疫情再次延期。不必翘首等待,施耐德电气将以线上云展厅的形式如期与您见面,为工业用户呈现一场以“绿色智能制造,共塑可持续未来”为主题的云端盛宴。凭借在绿色智能制造领域的丰富实…

运维更简单、更智能,让运维人不再 “拼命”

简介: 云原生智能运维解决方案,利用大数据为企业日常运维服务,通过可观测数据,融合智能告警与响应中枢,结合机器学习的方法进一步解决自动化运维所未解决的问题,让运维更简单、更智能。 在90%的科幻片中 万…

python全栈马哥_马哥Python全栈+爬虫+高端自动化,资源教程下载

资源名称 马哥Python全栈爬虫高端自动化,资源教程下载 资源介绍 这套课程最后是有项目实战的,如项目四-多人博客开发、项目五CMDB资产管理、项目七-运维流程系统。 资源目录 01Python开班仪式及职业指导 02linux基础-1 03linux基础-2 04linux基础-3 05li…

从操作系统层面分析Java IO演进之路

简介: 本文从操作系统实际调用角度(以CentOS Linux release 7.5操作系统为示例),力求追根溯源看IO的每一步操作到底发生了什么。 作者 | 道坚 来源 | 阿里技术公众号 前言 本文从操作系统实际调用角度(以CentOS Linu…

教程系列——用模板快速上线一个HR 服务中心

简介: 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第一讲,介绍《HR 服务中心》的模板启用。 【开箱即用的模板使用系列教程】将会手把手教给大家如何快速启用钉钉宜搭提供各类模板。今天第1讲,…

数字化“团险”黑科技,保险极客技术升级背后心经

作者 | 宋慧 出品 | CSDN 云计算 疫情之后,一切都在“内卷”,HR 也逃不过。初创公司想要招到优秀人才,除了对市场和未来发展的预期和潜力,提供补充医疗险也是对人才重要的保障。另外,现在补充医疗也是知名大企业高福利…

powershell快捷键_借助Windows Terminal搞一个花里胡哨的PowerShell终端

一提起PowerShell,命令提示符等等,想到的就是丑、难用,非常丑!各位可以先感受一下。不过,现在我们可以对它做一个美化,美化后的效果如下,各位也可以感受下(本人不提供背景图)下面做简单记录1、必…

【详谈 Delta Lake 】系列技术专题 之 特性(Features)

简介: 本文翻译自大数据技术公司 Databricks 针对数据湖 Delta Lake 的系列技术文章。众所周知,Databricks 主导着开源大数据社区 Apache Spark、Delta Lake 以及 ML Flow 等众多热门技术,而 Delta Lake 作为数据湖核心存储引擎方案给企业带来…