公司工资条经常使用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行代码秒出工资条相关推荐

  1. python小工具,15行代码秒出工资条

    公司工资条经常使用Excel制作,但是每个月都要做一遍,能不能用python写个程序自动化完成这想工作?当然可以,而且只是分分钟的事! 先来看看原始数据是什么样子: 最后做成的效果: 使用Excel每 ...

  2. python q切换指定目录_Python小工具:3秒钟将视频转换为音频

    阅读文本大概需要 5 分钟. 作者 | pk 哥来源公众号 | Python知识圈 最近,有读者微信上私聊我,想让我写一篇视频批量转换成音频的文章,我答应了,周末宅家里把这个小工具做出来了. 这样,对 ...

  3. python实现视频格式转换_Python小工具:利用ffmpy3库3秒钟将视频转换为音频

    作者 | pk 哥 来源公众号 | Python知识圈(ID:PythonCircle) 最近,有读者微信上私聊我,想让我写一篇视频批量转换成音频的文章,我答应了,周末宅家里把这个小工具做出来了. 这 ...

  4. python win32选取文件夹_python小工具 | Excel的xls和xlsx格式文件转换

    众所周知Excel文件格式转换可以通过"另存为"的方式转换格式,可以说是简单方便,但是对于大量文件转换或者经常重复进行转换操作时,这种方法就很不方便. 显然利用程序对xls和xls ...

  5. python自动引流软件_python小工具-流量转发器

    [Python] 纯文本查看 复制代码# -*- encoding: utf-8 -*- ''' @Author: Voyage ''' from IPy import IP from socket ...

  6. python爬ppt和风景_Python小工具爬取PPT模板

    报错,求楼主解决,谢谢 D:\pptdown目录已存在 Traceback (most recent call last): File "site-packages\urllib3\conn ...

  7. python开发图形小程序_python小程序图画 python开发微信小程序

    你用python写过哪些好玩的微信小程序? 首先要明确一点,python是后台语言,不能直接用python来写微信小程序的. 微信小程序是用javascript和css来写的. python只是用来给 ...

  8. python使用什么来区分代码块_Python 小数据池、代码块以及代码块缓存机制

    按照惯例,吟诗一首:苏轼<江城子·乙卯正月二十日夜记梦> 十年生死两茫茫,不思量,自难忘.千里孤坟,无处话凄凉. 纵使相逢应不识,尘满面,鬓如霜. 夜来幽梦忽还乡,小轩窗,正梳妆.相顾无言 ...

  9. python图像处理——图片区域颜色替换小工具

    python图像处理--图片区域颜色替换小工具 使用场景 图片区域颜色替换小工具使用python开发,可用于选取图片相同颜色的区域,可设定选择精度,可自由选择颜色,将区域的颜色进行替换.可使用橡皮擦工 ...

最新文章

  1. Python超过R,成为数据科学和机器学习的首选语言!
  2. 判断一个变量是不是指针
  3. python重复字符串n次_python装饰器听了N次也没印象,读完这篇你就懂了
  4. java mybatis 教程_(整理)MyBatis入门教程(一)
  5. sqlMapConfig.xml配置文件详解
  6. 计算机考级各省份难度,2018年全国各省份高考难度排名,基于高分率最新统计数据!...
  7. 5G iPhone消息刺激?苹果股价3连涨市值已超过1.2万亿美元
  8. hystrix 页面_SpringCloud微服务架构篇5:微服务熔断机制-Hystrix
  9. 阿里云域名注册+服务器购买+备案教程(图文教程)
  10. 分析咪蒙1013篇文章,300多万字,她凭什么会火?
  11. 〖Python 数据库开发实战 - Python与MySQL交互篇⑰〗- 项目实战 - 实现用户管理 - 修改用户
  12. (二)xlwt模块详解--设置列宽、行高
  13. 卢松松博客2018年年度推荐阅读文章
  14. 跟sky学数字IC前端设计:数字IP_FPGA实战
  15. javaweb编辑器ckeditor配置_ckeditor (一)在java web中的配置
  16. 车载诊断数据库ODX——Flash(刷写)
  17. VC6.0++ MFC多线程运行
  18. Linux、Mac时间戳转换小工具
  19. 阿里三面必问JVM知识点- 使用堆外内存减少Full GC
  20. hp 1007打印机加粉

热门文章

  1. 知乎热点:数学专业的学霸们毕业后都在做什么
  2. AI前沿线上大会,ALBERT一作、京东AI科学家等大咖亲临现场,限时免费,名额有限!...
  3. 施一公又火了!曾突然回国震惊所有美国人,如今所创公司IPO在即,还有基金大佬重仓加盟!...
  4. 李航:未来若干年,AI 技术发展可能会进入平缓期
  5. 有一种神一样的学霸,叫北大保安
  6. 中国空间站核心舱首次公开亮相:将于2022年前后完成在轨建造
  7. 王元院士漫谈哥德巴赫猜想
  8. mysql 设置 character_set_server_MySQL:简单记录character_set_server影响参数
  9. Linux shell编程学习总结
  10. Canal Mysql binlog 同步至 Hbase ES