当我们需要对大量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()
方法时,需要指定最小和最大的行列编号,这样可以避免因为表格格式改变而导致的错误。