Python利用openpyxl库遍历Sheet的实例

  • Post category:Python

以下是关于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_rowmax_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']