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日

相关文章

  • 如何在Excel文本框中应用拼写检查

    以下是“如何在Excel文本框中应用拼写检查”的完整攻略,包含两个示例说明。 如何在Excel文本框中应用拼写检查 在Excel中,可以使用文本框来输入文本,并应用拼写检查。下面是具体的步骤: 步骤一:插入文本框 首先需要在Excel电子表格中插入文本框可以使用以下方法来插入文本框: 单击“插入”选项卡。 单击“形状”按钮。 选择“文本框”。 步骤二:输入文…

    云计算 2023年5月10日
    00
  • Python延时操作实现方法示例

    Python延时操作实现方法示例 什么是延时操作 延时操作指的是在程序中使用延时来暂停程序的执行,可以用于多种场景,如在程序中等待某些异步操作完成、实现程序动画效果等。 time模块实现延时操作 Python的标准库time模块提供了实现延时操作的方法,具体方式如下: import time time.sleep(5) # 延时5秒 在上述代码中,我们导入t…

    python 2023年6月3日
    00
  • python列表的逆序遍历实现

    在Python中,列表是一种常见的数据类型,可以使用多种方法实现逆序遍历。本文将详细讲解Python中列表的逆序遍历实现,包括使用reversed函数、切片和使用for循环等。 使用reversed()函数逆序遍历 在Python中,可以使用reversed()函数逆序遍历列表re()函数Python内置函数之一,用于返回一个反转的迭代器,常用于循环中。re…

    python 2023年5月13日
    00
  • 新版selenium4.0 + Python使用详解

    新版selenium4.0 + Python使用详解 Selenium是一个自动化测试工具,可以用于模拟用户在浏览器中的交互行为。Selenium支持多种编程语言,其中Python是最受欢迎的语言之一。本文将详细讲解如何使用Python编写Selenium测试用例,包括环境配置和示例代码。 环境配置 要使用Python编写Selenium测试用例,需要安装P…

    python 2023年6月3日
    00
  • Python小程序编程实现一键自动整理文件解压文件

    Python小程序编写完整攻略 一、实现目标 开发一款小程序,用于自动识别指定文件夹中的压缩文件,并将其解压、整理到指定的目录中。 二、编写步骤 导入需要的Python库:os、shutil、zipfile等 定义函数,用于检测并解压压缩文件 定义函数,用于整理文件,并将其移动到指定目录 完成主程序的编写 三、具体实现过程 导入需要的Python库 impo…

    python 2023年5月23日
    00
  • Python 从 JSON 文件创建树

    【问题标题】:Python create tree from a JSON filePython 从 JSON 文件创建树 【发布时间】:2023-04-04 12:57:02 【问题描述】: 假设我们有以下 JSON 文件。出于示例的目的,它由字符串模拟。字符串是输入,Tree 对象应该是输出。我将使用树的图形符号来呈现输出。 我找到了以下类来处理 Pyt…

    Python开发 2023年4月6日
    00
  • 使用 python graphviz ImportError:没有名为 _gv 的模块

    【问题标题】:Using python graphviz ImportError: No module named _gv使用 python graphviz ImportError:没有名为 _gv 的模块 【发布时间】:2023-04-02 07:55:01 【问题描述】: 我正在尝试将 graphviz 与 python 一起使用,但出现错误: Tra…

    Python开发 2023年4月8日
    00
  • Python 斯皮尔曼等级顺序相关度

    Python 斯皮尔曼等级顺序相关度(Spearman’s Rank Correlation Coefficient)是一种衡量两个变量之间相关度的统计方法,它用于衡量两个变量之间的单调关系,即当一个变量下降时,另一个变量也下降,反之亦然。它对于异常值不太敏感,具有较好的鲁棒性和可靠性,适用于非线性数据和非正态分布数据的相关性分析。 下面是Python中使用…

    python-answer 2023年3月25日
    00
合作推广
合作推广
分享本页
返回顶部