如何使用Python读取.xlsx指定行列

  • Post category:Python

当我们需要对大量Excel数据进行处理时,手动逐行逐列进行数据读取是一件非常费时费力的事情。因此,许多Python程序员都借助第三方库来处理Excel数据。接下来我将为大家提供一个完整的Python读取Excel特定行和列的解决方案。

准备工作

在演示之前,我们需要安装openpyxl模块,该模块可以读取和写入.xlsx文件。可以通过如下命令安装openpyxl:

pip install openpyxl

示例1

假设我们要读取一个包含有学生信息的Excel文件,该文件的结构如下:

学号 姓名 年龄 性别
1 Tom 18 M
2 Jack 19 M
3 Rose 17 F

现在我们要读取该Excel文件中第二行(从第二行开始,行号为1)和第三列(从第一列开始,列号为0)的单元格数据,可以使用下面的代码:

from openpyxl import load_workbook

# 加载Excel文件
workbook = load_workbook('students.xlsx')

# 获取需要操作的表格
worksheet = workbook['Sheet1']

# 获取单元格数据
cell_value = worksheet.cell(row=2, column=3).value
print(cell_value)

运行以上代码,我们将得到输出结果:

19

在这个例子中,首先使用load_workbook()函数加载Excel文件,然后使用['Sheet1']选择需要操作的表格,接着cell()方法获取指定行列的单元格数据。需要注意的是,行和列的起始编号都是从1开始的。

示例2

假设我们现在有一个包含有若干城市气温数据的Excel文件,该文件的结构如下:

城市 1月 2月 3月 4月 5月 6月
北京 -2 5 13 20 26 30
上海 3 7 12 18 23 28
广州 10 15 20 25 30 35

现在我们要读取该Excel文件中所有城市的7月份气温数据,可以使用下面的代码:

from openpyxl import load_workbook

# 加载Excel文件
workbook = load_workbook('weather.xlsx')

# 获取需要操作的表格
worksheet = workbook.active

# 按列遍历寻找需要数据的行
for row in worksheet.iter_rows(min_row=1, max_row=worksheet.max_row, min_col=1, max_col=1):
    if row[0].value == '城市':
        continue
    # 获取该城市7月份气温数据
    cell_value = worksheet.cell(row=row[0].row, column=7).value
    print(row[0].value, cell_value)

运行以上代码,我们将得到输出结果:

北京 34
上海 33
广州 37

在这个例子中,使用iter_rows()方法按列遍历寻找对应城市的行,并使用row[0].row获取该行的行号,再使用cell()方法获取指定城市7月份的气温数据。需要注意的是,在使用iter_rows()方法时,需要指定最小和最大的行列编号,这样可以避免因为表格格式改变而导致的错误。