Python使用Excel将数据写入多个sheet

下面是Python使用Excel将数据写入多个sheet的完整实例教程。

环境准备

我们需要安装 openpyxl 库,它是一个用于读写Excel文件的Python模块,可以通过以下命令进行安装:

pip install openpyxl

实例说明1

假设我们有一个学生成绩表格,其中有三个学科:语文、数学、英语,现在我们要将学生成绩按照不同学科写入不同的sheet中。

数据如下所示:

姓名 语文成绩 数学成绩 英语成绩
小明 90 80 85
小红 95 85 90
小张 80 90 92
小王 88 92 87

以下是完整代码示例:

from openpyxl import Workbook

# 表头
header = ["姓名", "语文成绩", "数学成绩", "英语成绩"]
# 成绩数据
data = [["小明", 90, 80, 85], 
        ["小红", 95, 85, 90], 
        ["小张", 80, 90, 92], 
        ["小王", 88, 92, 87]]

# 创建Excel对象
wb = Workbook()

# 创建不同的sheet
for subject in header[1:]:
    sheet = wb.create_sheet(subject)

    # 写入表头
    for col, title in enumerate(header):
        sheet.cell(row=1, column=col+1, value=title)

    # 写入数据
    for row, row_data in enumerate(data):
        name, score1, score2, score3 = row_data
        sheet.cell(row=row+2, column=1, value=name)
        sheet.cell(row=row+2, column=2, value=score1)
        sheet.cell(row=row+2, column=3, value=score2)
        sheet.cell(row=row+2, column=4, value=score3)

# 保存Excel文件
wb.save("scores.xlsx")

运行上面的代码,可以得到一个名为“scores.xlsx”的Excel文件,其中包含三个sheet,分别为“语文成绩”、“数学成绩”和“英语成绩”,每个sheet中包含对应的学科成绩数据。

实例说明2

假设我们有一个销售数据表格,现在我们要将不同区域的销售数据按照不同的sheet进行分组,并在每个sheet中计算总销售额和平均销售额。

数据如下所示:

区域 产品 销售额
北京 A 100
北京 B 120
上海 A 150
上海 B 130
广州 A 80
广州 B 70

以下是完整代码示例:

from openpyxl import Workbook
from openpyxl.utils import column_index_from_string
from openpyxl.styles import Alignment, Font

# 表头
header = ["区域", "产品", "销售额"]
# 销售数据
data = [["北京", "A", 100], 
        ["北京", "B", 120], 
        ["上海", "A", 150], 
        ["上海", "B", 130], 
        ["广州", "A", 80], 
        ["广州", "B", 70]]

# 创建Excel对象
wb = Workbook()

# 销售数据按照区域进行分组
groups = {}
for row_data in data:
    region, product, sales = row_data
    if region not in groups:
        groups[region] = []
    groups[region].append([product, sales])

# 遍历销售数据分组,并创建不同的sheet
for region, sales_data in groups.items():
    sheet = wb.create_sheet(region)

    # 写入表头
    for col, title in enumerate(header):
        sheet.cell(row=1, column=col+1, value=title)

    # 写入销售数据
    for row, row_data in enumerate(sales_data):
        product, sales = row_data
        sheet.cell(row=row+2, column=1, value=region)
        sheet.cell(row=row+2, column=2, value=product)
        sheet.cell(row=row+2, column=3, value=sales)

    # 计算总销售额和平均销售额
    total_sales = sum([row_data[1] for row_data in sales_data])
    avg_sales = total_sales / len(sales_data)

    # 合并单元格,并写入总销售额和平均销售额
    total_sale_cell = f"C{len(sales_data)+2}"
    avg_sale_cell = f"D{len(sales_data)+2}"
    sheet.merge_cells(f"A{len(sales_data)+2}:B{len(sales_data)+2}")
    sheet.cell(row=len(sales_data)+2, column=1, value="总销售额")
    sheet.cell(row=len(sales_data)+2, column=3, value=total_sales)
    sheet.cell(row=len(sales_data)+2, column=4, value=avg_sales)

    # 设置总销售额和平均销售额单元格格式
    sheet[total_sale_cell].alignment = Alignment(horizontal="center")
    sheet[total_sale_cell].font = Font(bold=True)
    sheet[avg_sale_cell].alignment = Alignment(horizontal="center")
    sheet[avg_sale_cell].font = Font(bold=True)

# 保存Excel文件
wb.save("sales.xlsx")

运行上面的代码,可以得到一个名为“sales.xlsx”的Excel文件,其中包含三个sheet,分别为“北京”、“上海”和“广州”,每个sheet中包含对应区域的销售数据以及总销售额和平均销售额。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python使用Excel将数据写入多个sheet - Python技术站

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

相关文章

  • Python正则表达式基本原理

    Python正则表达式基本原理 正则表达式是一种用于描述字符串模式的语言,它可以用于匹配、查找、替换和割字符串。Python中的re模块提供正则表达式的支持,方便进行字符串的处理。本文将详细讲解Python正则表达式的基本原理,包正则表达式法、re块的常用函数以及两个常用的匹配实例。 正则表达式语法 正则表达式由一些特殊字符和普通字符组成,用于字符串模式。下…

    python 2023年5月14日
    00
  • python粘包问题及socket套接字编程详解

    下面我们来详细讲解一下“Python粘包问题及Socket套接字编程详解”的攻略。 什么是粘包问题? 在Socket套接字编程中,发送端发送的多个小数据包可能会被接收端合并成一个大数据包,这就是粘包问题。造成这种情况的原因是TCP协议是面向流的,没有数据边界的概念,因此发送的数据无法保证一定是发送端所希望的大小。 如何解决粘包问题? 解决粘包问题的方法有很多…

    python 2023年6月6日
    00
  • 教你用Python实现简易版学生信息管理系统(含源码)

    教你用Python实现简易版学生信息管理系统(含源码) 概述 本文将介绍如何使用 Python 编写一个简单的学生信息管理系统。本系统支持添加、查询、删除和修改学生信息,并且所有数据都存储在本地文本文件中。本文将详细介绍系统的实现流程,并提供完整的源码。 实现步骤 1. 创建项目 首先,在本地环境中创建一个新的 Python 项目文件夹,并在文件夹中创建一个…

    python 2023年5月30日
    00
  • Python中的装饰器使用

    下面是对于Python中的装饰器使用的具体讲解。 什么是装饰器 在Python中,装饰器是一种特殊的函数,它可以在不改变原函数代码的情况下,为函数增加新的功能。我们可以使用装饰器来实现函数的日志记录,性能分析,缓存等等。 在Python中,装饰器是通过 @ 符号来使用的,一般放在被装饰函数之前。 装饰器使用 我们可以使用装饰器来给一个函数添加功能。接下来通过…

    python 2023年6月2日
    00
  • Python如何实现FTP功能

    Python可以通过内置的ftplib库来实现FTP功能。ftplib是Python标准库中的FTP客户端实现,支持多种传输模式和FTP协议规范。 下面是实现FTP功能的完整攻略: 安装ftplib库 如果你使用的是Python的官方发行版,那么ftplib是内置的,不需要安装额外的第三方库。 如果你使用的是其他Python实现,或者需要使用pyftpdli…

    python 2023年6月3日
    00
  • Python用matplotlib库画图中文和负号显示为方框的问题解决

    下面为你详细讲解“Python用matplotlib库画图中文和负号显示为方框的问题解决”的完整攻略。 问题描述 在使用Python的matplotlib库进行图形绘制时,有时会发现中文和负号显示为方框的情况。这是因为matplotlib默认的字体不支持中文和负号,需要手动设置支持中文和负号的字体才能解决这个问题。 解决方法 1. 安装支持中文和负号的字体 …

    python 2023年5月18日
    00
  • 浅谈python在提示符下使用open打开文件失败的原因及解决方法

    浅谈Python在提示符下使用open打开文件失败的原因及解决方法 在Python中,使用open函数打开文件是非常常见的操作。是,在提示符下使用open函数打开文件时,有时会出现开文件失败的情况。本文将详细讲解Python在提示符下使用open打开文件失败的原因及解决方法,包括文件路径错误、文件权限问题等。在过程中,供两个示例说明,帮助读者更好地理解ope…

    python 2023年5月13日
    00
  • Pygame的程序开始示例代码

    我们来详细讲解一下“Pygame的程序开始示例代码”的完整攻略。 1. 安装Pygame 在开始编写Pygame程序之前,需要先安装Pygame库。可以通过以下命令来安装: pip install pygame 2. 导入Pygame模块 在编写Pygame程序之前,需要先导入Pygame模块。可以使用以下代码来导入Pygame模块: import pyga…

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