以下是关于Python利用openpyxl库遍历Sheet的实例的完整实例教程。
1. 环境搭建
在使用openpyxl库进行开发之前,请首先确保你的电脑已经安装了Python和openpyxl库。如果还没有安装,请按照以下步骤进行安装:
- 安装Python:请前往Python官网下载并安装最新版本的Python。
- 安装openpyxl库:在终端中输入以下命令即可:
pip install openpyxl
2. 示例说明
在本文中,我们将演示如何使用openpyxl库遍历Excel中的所有Sheet。我们将使用下面这个Excel文件作为示例:
Sheet1 | Sheet2 | Sheet3 | |
---|---|---|---|
A | 1 | a | foo |
B | 2 | b | bar |
C | 3 | c | baz |
其中,每个Sheet中均包含3行3列的数据。
示例1:简单遍历
在本例中,我们将演示如何简单遍历Excel中的所有Sheet,并将每个Sheet中的所有行输出到控制台。
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 遍历所有Sheet
for sheet_name in wb.sheetnames:
# 选择当前Sheet
sheet = wb[sheet_name]
print('\nSheet名:', sheet_name)
# 遍历当前Sheet中的每一行
for row in sheet.iter_rows(min_row=1, max_col=sheet.max_column, max_row=sheet.max_row):
# 遍历当前行中的所有单元格
for cell in row:
print(cell.value, end=' ')
print()
在上述代码中,我们首先通过openpyxl库中的load_workbook
方法打开Excel文件,并使用sheetnames
属性获取所有Sheet的名称。
然后,我们使用iter_rows
方法遍历每个Sheet中的所有行,其中min_row
和max_row
参数分别表示遍历哪些行,max_col
参数表示遍历哪些列。
最后,我们在内部的循环中遍历当前行中的所有单元格,并将单元格的值输出到控制台。需要注意的是,在每行输出结束后,我们使用了一个print()
方法来输出一个空行,以区分不同的Sheet。
运行上述代码后,你将看到下面这个输出:
Sheet名: Sheet1
1 a foo
2 b bar
3 c baz
Sheet名: Sheet2
a b c
1 2 3
foo bar baz
Sheet名: Sheet3
foo bar baz
1 2 3
a b c
示例2:使用列表存储每个Sheet的所有行数据
在实际开发中,常常需要将Excel中的所有数据读取到内存中,然后进行一些数据处理。在本例中,我们将演示如何使用列表存储每个Sheet的所有行数据,并输出到控制台。
import openpyxl
# 打开Excel文件
wb = openpyxl.load_workbook('example.xlsx')
# 定义一个列表,用于存储每个Sheet的所有行数据
all_rows = []
# 遍历所有Sheet
for sheet_name in wb.sheetnames:
# 选择当前Sheet
sheet = wb[sheet_name]
# 遍历当前Sheet中的每一行
for row in sheet.iter_rows(min_row=1, max_col=sheet.max_column, max_row=sheet.max_row):
# 定义一个列表,用于存储当前行的所有单元格值
current_row = []
# 遍历当前行中的所有单元格,并将每个单元格的值添加到列表中
for cell in row:
current_row.append(cell.value)
# 将当前行添加到all_rows列表中
all_rows.append(current_row)
# 输出all_rows列表中的所有行数据
for index, row in enumerate(all_rows):
print('第{}行:{}'.format(index+1, row))
在上述代码中,我们首先定义了一个名为all_rows
的列表,用于存储Excel文件中所有Sheet的所有行数据。
然后,我们遍历所有Sheet,并在内部的循环中遍历当前Sheet中的每一行。对于每一行,我们都定义了一个名为current_row
的列表,用于存储当前行的所有单元格的值。
最后,我们将当前行添加到all_rows
列表中,并在外部的循环中遍历all_rows
列表,并输出其中所有行的数据。
运行上述代码后,你将看到下面这个输出:
第1行:['1', 'a', 'foo']
第2行:['2', 'b', 'bar']
第3行:['3', 'c', 'baz']
第4行:['a', 'b', 'c']
第5行:['1', '2', '3']
第6行:['foo', 'bar', 'baz']
第7行:['foo', 'bar', 'baz']
第8行:['1', '2', '3']
第9行:['a', 'b', 'c']