我给财务女神写了个批量发工资脚本!她让我做她闺蜜?不应该是...

202 篇文章 14 订阅

表格:每个Excel文件本质上都是一个表格的集合,一个Excel文件中可以有多个表格。Excel文件和表格的关系,类似浏览器和标签页的关系。Excel文件中,你可以点击底部的表格名称来切换表格。

单元格:表格中的一个小格子叫“单元格”。每一个单元格对应一个坐标,横轴的坐标是英文字母,纵轴的坐标是数字(也就是行号)。所以“A1”就是左上角的那个单元格,“C3”就是第三列、第三行的单元格。

上面的脚本中,我们打印出了Excel文件中Sheet1表格的左上角的单元格的内容。

运行这个Python脚本(代码较少的Python项目,我们称之为脚本),终端打印了文字“员工姓名”:

$ py parse_excel.py
员工姓名

获取全部员工工资信息

通过上面的脚本,我们成功获得了一个单元格的内容。为了获得全部员工的信息,我们实际上是要获得以“A2-E2-E4-A4”四个单元格为角的矩形内部的所有单元格的内容。

图片

自然地,我们会直接想到用for循环遍历的形式获取所有单元格内容,像这样:

for row in [2, 3, 4]:
    print("\n员工工资信息:")
    for col in ['A', 'B', 'C', 'D', 'E']:
        print(sheet[col + str(row)].value)

其中第二行print的字符串中“\n”是代表换行的意思,以便让每个员工信息之间有一个空行,这样看起来更直观。

运行这段代码,确实能够得到我们期望的输出结果:

员工工资信息:
张三
3276131224@gmail.com
3500
500
4000

员工工资信息:
李四
lovethisworld@hotmail.com
4000
200
4200

员工工资信息:
王二麻子
loveandpeace@facebook.com
2570
400
2970

不过这段代码只能用于员工数量很少的情况,因为我们使用了[2,3,4]这样的固定数组来遍历员工,如果员工有1000人,单写这个数组就会花很长时间。那么如何支持大量员工的情况呢?我们可以用下面代码来代替这个固定数组。

range(2,5)

range是一个Python的内置函数,它可以生成一个可迭代对象,让for循环逐个获取它提供的数字。通俗一点说,就是for循环每执行一次内部代码,都会先从range函数要一个数字,直到range函数没有数字可提供了,for循环就结束了。

以上面这个代码为例,range(2, 5)会依次给for循环提供2,3,4,然后就结束了。注意,不提供5。也就是range提供的数字从第一个参数开始,每次加一,一直提供到第二个参数减一。(用数学化的语言来说,range就是一个区间,两个参数表示的是一个前闭后开的区间。)

这样修改之后,无论有多少员工,我们的代码都能够支持了。

for row in range(2, 5):
    print("\n员工工资信息:")
    for col in ['A', 'B', 'C', 'D', 'E']:
        print(sheet[col + str(row)].value)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值