通过 Python 查询 Excel 数据

通过 Python 查询 Excel 数据

我有一个记录学生信息的 Excel 表格,我想通过学生的姓名或者学号查询学生的信息。

学生信息如下

姓名学号性别年龄身份证号码期末总成绩
张三HY1231181234567890098
李四HY1232185236417893295
王二HY1233172541362907887
小明HY1234188569741230176
小张HY1235175832146971085

文件名称:info.xlsx

该示例将使用到第三方的库,所以需要先使用 pip 安装第三方的库:

C:\Users\Administrator>pip install xlrd
Collecting xlrd
  Downloading xlrd-1.2.0-py2.py3-none-any.whl (103 kB)
     |████████████████████████████████| 103 kB 43 kB/s
Installing collected packages: xlrd
Successfully installed xlrd-1.2.0

代码如下:

import xlrd    

file = "info.xlsx"
name = input("Pleas enter name:")

workbook = xlrd.open_workbook(file)
Table = workbook.sheet_by_name("Sheet1")
# Table = workbook.sheet_by_index(0)

length = Table.nrows
for i in range(length):
    row = Table.row_values(i)
    if name in row[0]:
        print(row[0:6])

代码说明:

import xlrd  

导入第三方库,对于 Excel 的操作,我们需要使用到第三方的库,Python 中对于 Excel 的操作,主要用到两个模块,xlrd 和 xlwt,xlrd 用于读取 Excel 内容,xlwt 用于写入内容到 Excel 中。

file = "info.xlsx"
name = input("Pleas enter name:")

为了方便,我们习惯将对象赋予给一个变量,方便以后使用。在以后使用时,只需要输入变量名就可以了。我这里的文件,只写了文件名,因为我把 Excel 文件,和 Python 文件放在同一个路径上了,如果你的 Excel 文件和 Python 不在同一个目录,你需要在赋值时加上具体的路径。

name,是你查询的对象,你将通过 name 查询 name 对应的信息。input() 用于接受用户的输入。

workbook = xlrd.open_workbook(file)
Table = workbook.sheet_by_name("Sheet1")
# Table = workbook.sheet_by_index(0)

使用 xlrd.open_workbook() 打开 Excel 文件,并将它赋值给 workbook.

使用 .sheet_by_name() 获取 Excel 文件中的表格内容,在括号中指定表格名称。一个 Excel 中可以有多个表格。表格名称在 Excel 文件的左下方。

你也可以使用 .sheet_by_index() 通过索引的方式获取表格内容

length = Table.nrows
for i in range(length):
    row = Table.row_values(i)
    if name in row[0]:
        print(row[0:6])

使用 .nrows 获取表格的行数,并赋值给 length,你也可以使用 .ncols 获取列的数量。

使用 for 循环每一行。

通过 if 判断,如果你输入的 name 在某一行中,那么就打印这一行的的内容。

遍历每一行的内容,会将每作为一个列表赋值给 row,所以判断的时候,使用了 row[0],0 表示 name 的索引。

然后我们通过对该列表切片,获取我们想要的内容,我们想要的是整个一行,所以使用了 row[0:6],其实这里也可以使用 print(row)。

这是该代码的结果(PyCharm):

"C:\Program Files\Python38\python.exe" C:/Test/Excel.py
Pleas enter name:李四
['李四', 'HY1232', '男', 18.0, 52364178932.0, 95.0]

Process finished with exit code 0

  • 10
    点赞
  • 103
    收藏
    觉得还不错? 一键收藏
  • 12
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值