python实用案例-Python实用案例:一秒自动生成工资条。

近日,公司的财务小姐姐请我吃饭,当时我就有预感,绝对不是就吃一顿饭那么简单。果然,在吃饭的时候,她羞涩的把脑袋凑过来悄悄跟我说,听说你Python很厉害呀。因为平时埋头写代码,很少跟女生讲话。今天小姐姐居然一开口就问我最擅长的技能,那我肯定要好好表现一番啊,于是拍着胸脯说:"是的,我用Python上能控制火箭,下能操作坦克,你想做什么?”。她立马一副崇拜的样子看着我说:"我每个月都要用Excel做工资表,但是每个月都要做一遍,你能不能用Python帮我写一个程序,能够自动完成这个工作。”。我当然立马答应了啊,这么点小事,分分钟搞定!f6645a78dbc30b2a52b1bff021aa59394731db65.png

需求:

在讲实现过程之前,先来给大家说说,这位财务小姐姐的需求是什么。首先他是有一个员工工资表,这个工资表是长这样的:8140bd900d207cc51d2d6640416d150e088272ee.png

大家给自己工资条签过字的小伙伴都知道,我们需要的工资条上面都有一行标题,所以她的需求是要把工资条这样的:2b811ab57f9606deb241860576f29c315f79863e.png

之前她处理的方式就是一个个拷贝添加,效率实在太低。今天我给这位小姐姐做个程序,以后做工资条,一秒钟搞定!!!bb2e7781a69fe428c13b7904cea8380b0722d846.png

实现逻辑分析:

Python中操作Excel的包有很多,比如有pandas、openpyxl、xlrd/xlwt等。在这里我们选择的是openpyxl,主要是他除了能处理数据外还能处理样式,功能比较完整。

首先加载excel文件,并且创建一个新的sheet来保存新生成的工资条样式。代码如下:

fdbf838f7b771724004ca40f5d4d2d808286886b.png

然后再把标题部分的样式(对齐样式、边框样式、填充样式、字体样式等)拷贝一份,以后每次新增一个工资条的时候,都把标题名称和这些样式拷贝过去。这部分实现的代码如下:

62271008510957ee126a0fa8c91528b6ead6a25d.png

上面代码是先定义了一个拷贝样式的函数,然后下面把样式拷贝出来。

最后一部分,就是把原始的工资数据读取出来,然后按照工资条的样式重新插入数据。逻辑有点多,建议理解一下:

ebd13d9b1d60450482d55f760e6602a71ad82e10.png

这里需要特别说明一点的就是更新公式。就拿第一次循环来说,我们在第3行的位置,插入了2个空白行。那么原本第3行的数据,此时就被挤到了第5行。

但是需要注意的是,它是被迫挤到第5行的,所以这一整行是原封不动搬到第5行的,包括它原来的公式。原来在第3行的时候,如果公式是SUM(E3:G3),被挤到到了第5行后,应该是SUM(E5:G5),但是它仍然是SUM(E3:G3),所以需要我们修改,上述代码中正是使用正则将这个数字3改为了5。

这样,我们就能把积累在一起的工资数据分割成一个个的工资条了。以后只要把需要处理的工资条,放到代码中,然后运行一下,瞬间就能生成想要的工资条样式了。

本文完整的撩妹代码,大家可以看首页加我或者私信up,获取完整源代码哦~

财务小姐姐再也不用加班啦,不加班去干嘛呢?啥都能干呀,哈哈哈哈~~

Python还能在办公中哪些方面帮助我们呢,评论区聊聊呗~~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值