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

学生信息如下

姓名

学号

性别

年龄

身份证号码

期末总成绩

张三

HY1231


18

12345678900

98

李四

HY1232


18

52364178932

95

王二

HY1233


17

25413629078

87

小明

HY1234


18

85697412301

76

小张

HY1235


17

58321469710

85

文件名称:info.xlsx

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

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

代码如下:

import xlrdfile = "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.nrowsfor 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.nrowsfor 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)。

这是该代码的结果:

"C:\Program Files\Python38\python.exe" C:/Test/Excel.pyPleas enter name:李四['李四', 'HY1232', '男', 18.0, 52364178932.0, 95.0]Process finished with exit code 0

这是我在 PyCharm 中运行的结果。