Python利用openpyxl库遍历Sheet的实例

下面是Python利用openpyxl库遍历Sheet的实例的完整实例教程:

环境准备

在使用openpyxl库之前,需要确保已经安装了该库。可以使用pip install openpyxl命令来安装它。

打开Excel文件

我们可以使用openpyxl库来打开一个Excel文件,从而遍历其中的Sheet。打开文件的方法是load_workbook()。具体用法如下:

from openpyxl import load_workbook

# 打开文件并读取第一个Sheet
wb = load_workbook(filename = 'example.xlsx')
sheet = wb.active

在这个例子中,我们打开了名为example.xlsx的Excel文件,并读取其中的第一个Sheet。请注意,active方法表示默认选中的Sheet,如果需要读取其他的Sheet,可以使用wb[str]方法,其中str代表Sheet的名称。

遍历Sheet

在打开Excel文件之后,我们就可以遍历其中的Sheet了。openpyxl库提供了两种遍历Sheet的方法:按行遍历和按列遍历。

按行遍历Sheet

按行遍历Sheet可以使用Sheet对象的iter_rows()方法。例如:

for row in sheet.iter_rows(min_row=1, max_col=3, max_row=2, values_only=True):
    print(row)

以上代码遍历了名为sheet的Sheet的第1行至第2行,第1列至第3列的单元格,并将其从左到右、从上到下分别输出。

其中,iter_rows()方法的参数含义如下:
- min_row:遍历的起始行,默认为第1行。
- max_row:遍历的结束行,默认为Sheet的最大行数。
- min_col:遍历的起始列,默认为第1列。
- max_col:遍历的结束列,默认为Sheet的最大列数。
- values_only:是否只遍历单元格的值,默认为False。如果为True,则只输出单元格的值而不是包含样式等信息的单元格对象。

按列遍历Sheet

按列遍历Sheet可以使用Sheet对象的iter_cols()方法。例如:

for col in sheet.iter_cols(min_row=1, max_col=3, max_row=2, values_only=True):
    print(col)

以上代码遍历了名为sheet的Sheet的第1列至第3列,第1行至第2行的单元格,并将其从上到下、从左到右分别输出。

其中,iter_cols()方法的参数含义与iter_rows()方法相同。

示例说明

接下来,我们来看两个具体的示例。

示例一

在这个示例中,我们从一个名为students.xlsx的Excel文件中读取并计算了每个学生的总分,并将结果输出到另一个Excel文件result.xlsx中。

首先,我们来看下原始的students.xlsx文件的内容。它有两个Sheet,分别为ChineseMath,每行内容表示一个学生的姓名、学号和成绩。ChineseMath中的学生可能有重复。请下载Excel文件,并将其保存到当前目录下。

接下来是完整代码的解释:

from openpyxl import load_workbook, Workbook

# 打开学生信息表,读取Chinese和Math两个Sheet
wb = load_workbook(filename='students.xlsx')
sheet_chinese = wb['Chinese']
sheet_math = wb['Math']

# 创建新表,准备输出结果
wb_out = Workbook()
sheet_out = wb_out.active
sheet_out.title = "Result"

# 读取学生信息表,计算总分
students = {}
for sheet in [sheet_chinese, sheet_math]:
    for row in sheet.iter_rows(min_row=2, values_only=True):
        name = row[0]
        id = row[1]
        score = row[2]
        if id not in students:
            students[id] = {'name':name, 'chinese':0, 'math':0}
        if sheet.title == 'Chinese':
            students[id]['chinese'] += score
        else:
            students[id]['math'] += score

# 输出结果到Result表
sheet_out.append(['姓名', '学号', '语文总分', '数学总分', '总分'])
for id in students.keys():
    name = students[id]['name']
    chinese = students[id]['chinese']
    math = students[id]['math']
    total = chinese + math
    sheet_out.append([name, id, chinese, math, total])

# 保存结果文件
wb_out.save('result.xlsx')

在这个示例中,我们先打开students.xlsx文件,并读取其ChineseMath两个Sheet。接着,我们在内存中创建一个新的Excel表格Result,并按照学生的学号计算他们的总分,并将结果输出到Result表中。最后,我们保存结果文件result.xlsx

运行上述代码之后,我们将得到一个新的Excel文件result.xlsx,其中包含了每个学生的总分信息。输出结果如下所示:

姓名 学号 语文总分 数学总分 总分
小明 1001 84 90 174
小红 1002 76 94 170
小刚 1003 80 82 162

示例二

在这个示例中,我们将遍历一个Excel文件中所有的Sheet,并输出它们的名称以及每个Sheet中前5行数据的内容。

首先,我们需要准备一个示例Excel文件,其中包含了三个Sheet,分别为Sheet1Sheet2Sheet3,每个Sheet包含10行10列的随机数值。请下载Excel文件,并将其保存到当前目录下。

接下来是完整代码的解释:

from openpyxl import load_workbook

# 打开Excel文件
wb = load_workbook(filename = 'example.xlsx')

# 遍历所有Sheet
for sheet in wb.worksheets:
    print("Sheet Name:", sheet.title)
    for row in sheet.iter_rows(min_row=1, max_row=5, values_only=True):
        print(row)

在这个示例中,我们使用了wb.worksheets属性来获取所有的Sheet,然后使用iter_rows方法按行遍历每个Sheet的前5行,并输出它们的内容。运行以上代码,我们将得到类似如下的输出:

Sheet Name: Sheet1
(54, 90, None, 48, 20, None, 91, 60, 61, 45)
(83, None, None, 16, 12, None, None, None, None, None)
(83, 15, None, None, None, 59, None, None, None, 24)
(3, None, None, 72, None, None, 47, None, None, None)
(28, 92, 45, None, 71, 48, None, None, None, None)
Sheet Name: Sheet2
(73, None, None, 99, 81, 12, 75, None, None, None)
(78, 20, None, None, None, None, None, None, None, 26)
(56, None, None, None, None, None, None, None, None, None)
(None, 53, None, None, None, None, None, None, None, 22)
(27, 63, None, None, None, None, None, None, None, None)
Sheet Name: Sheet3
(71, None, None, None, None, None, None, None, None, None)
(59, None, None, None, None, None, None, None, None, None)
(52, 1, None, None, None, 86, None, None, None, None)
(78, None, None, None, None, None, None, None, None, 36)
(25, 46, 5, None, None, None, None, 29, 21, 65)

以上就是Python利用openpyxl库遍历Sheet的实例的完整实例教程。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python利用openpyxl库遍历Sheet的实例 - Python技术站

(0)
上一篇 2023年5月13日
下一篇 2023年5月13日

相关文章

  • 关于Linux操作系统下终端乱码的完美解决方法

    让我来详细讲解关于Linux操作系统下终端乱码的完美解决方法。首先需要了解的是,Linux操作系统支持多种字符编码方式,如UTF-8、GBK等。终端乱码的原因一般是出现了字符编码不兼容的情况,导致终端无法正确识别并显示字符。 下面是完整的解决方法: 一、检查终端编码方式 可以通过以下命令来查看Linux终端当前所使用的字符编码方式: echo $LANG 如…

    python 2023年5月20日
    00
  • python中的编码知识整理汇总

    我来为您详细讲解一下“Python中的编码知识整理汇总”的完整攻略。 什么是编码? 在计算机中,存储和传输信息的最小单位是比特,也就是二进制数0和1。而编码则是将字符、数字、符号等文本信息转换为二进制数的过程。不同的编码方式会使用不同的二进制数来表示不同的字符。 常见的编码方式 以下是常见的编码方式: ASCII编码 ASCII编码最早是美国标准化协会制定的…

    python 2023年5月20日
    00
  • Python正则表达式的应用详解

    Python正则表达式的应用详解 正则表达式是一种强大的文本处理工具,可以用于各种文本处理任务,如数据清洗、文本分析、提取等。在Python中,我们可以使用re模块来操作正则表达。本攻略详细讲解Python正则表达式的基本语法、常用函数和应用技巧,帮助读者快速掌握则表达式的用法。 正则表达式的基本语法 正则表达式是由普通字符和元字符组成的字符串,用于匹配文本…

    python 2023年5月14日
    00
  • Python retrying 重试机制的使用方法

    Python retrying 重试机制的使用方法 在Python中,我们可以使用retrying库来实现重试机制。retrying库提供了一种简单的方法来重试失败的函数调用,以便在出现错误时自动重试。本文将介绍Python retrying 重试机制的使用方法,包括安装retrying库、使用retrying库的基本语法、使用retrying库的高级语法、…

    python 2023年5月13日
    00
  • Python操作Excel之xlsx文件

    下面我会详细讲解Python操作Excel之xlsx文件的完整实例教程,让你学会基本的Excel操作。 一、安装必要的库 在Python操作Excel之前,我们需要先安装两个必要的库:openpyxl和pandas。 1.1 安装openpyxl openpyxl是一个Python库,用于读取和写入Excel 2010 xlsx /xlsm /xltx /x…

    python 2023年5月13日
    00
  • 利用在Python中数值模拟研究气体扩散

    当我们想要研究气体扩散时,常常需要进行数值模拟。Python提供了许多用于科学计算的库和工具,可以方便地进行数值模拟和数据可视化。接下来我将详细讲解如何使用Python进行气体扩散的数值模拟。 1. 准备工作 在开始之前,需要安装Python和一些常用的科学计算库,如numpy、matplotlib和scipy。可以使用pip在终端或命令行中安装它们: pi…

    python 2023年6月5日
    00
  • 详解Python中的编码问题(encoding与decode、str与bytes)

    详解Python中的编码问题 在Python中,经常会用到编码相关的操作,因此理解编码问题是很重要的。本篇攻略将详解Python中的编码问题,包括编码与解码(encoding与decode)、str与bytes等主要内容。 编码与解码 编码通常指将字符串转换为字节序列,解码则是将字节序列转换为字符串。在Python中,有两个内置的函数,可以进行编码与解码的操…

    python 2023年5月20日
    00
  • python使用selenium爬虫知乎的方法示例

    Python使用Selenium爬虫知乎的方法示例 最近,许多人开始将Selenium用于网页爬取,尤其是在需要模拟人为操作的情况下,Selenium可以提供更方便的解决方案。在这篇文章中,我们将学习如何使用Selenium来爬取知乎的数据。 1. 安装Selenium 首先,我们需要安装Selenium模块。可以通过pip包管理器在命令行中输入以下命令来安…

    python 2023年5月14日
    00
合作推广
合作推广
分享本页
返回顶部