Python如何在excel中创建多个sheet

在实际的数据处理过程中,有时候需要将大量的数据分成多个sheet进行存储和管理。而Python的openpyxl库提供了创建和操作Excel文件的功能,可以很方便地实现多个sheet的创建。下面我们将通过一个具体的问题,介绍如何使用Python在Excel中创建多个sheet。

问题描述

假设我们有一个包含多个学生的成绩单,每个学生的成绩数据包括姓名、语文成绩、数学成绩和英语成绩。我们希望将这些学生成绩分别保存到Excel文件的不同sheet中,方便后续的数据分析和处理。

解决方案

首先,我们需要安装openpyxl库,可以使用以下命令进行安装:

pip install openpyxl

接下来,我们可以按照以下步骤来创建多个sheet并保存数据:

  1. 导入所需的库:
import openpyxl
from openpyxl import Workbook
  1. 创建一个新的Excel文件:
workbook = Workbook()
  1. 创建多个sheet并设置表头:
sheet_names = ['Sheet1', 'Sheet2', 'Sheet3']  # 定义sheet的名称
for sheet_name in sheet_names:
    sheet = workbook.create_sheet(title=sheet_name)  # 创建sheet
    sheet.append(['姓名', '语文成绩', '数学成绩', '英语成绩'])  # 设置表头
  1. 读取学生成绩数据,并将数据写入到对应的sheet中:
student_scores = [
    {'姓名': '张三', '语文成绩': 80, '数学成绩': 90, '英语成绩': 70},
    {'姓名': '李四', '语文成绩': 85, '数学成绩': 95, '英语成绩': 75},
    {'姓名': '王五', '语文成绩': 90, '数学成绩': 85, '英语成绩': 80}
]

for student_score in student_scores:
    sheet_name = 'Sheet' + str(student_scores.index(student_score) + 1)  # 获取对应的sheet名称
    sheet = workbook[sheet_name]  # 获取对应的sheet对象
    sheet.append([student_score['姓名'], student_score['语文成绩'], student_score['数学成绩'], student_score['英语成绩']])  # 写入数据
  1. 保存Excel文件:
workbook.save('student_scores.xlsx')

完整的代码如下所示:

import openpyxl
from openpyxl import Workbook

# 创建一个新的Excel文件
workbook = Workbook()

# 创建多个sheet并设置表头
sheet_names = ['Sheet1', 'Sheet2', 'Sheet3']
for sheet_name in sheet_names:
    sheet = workbook.create_sheet(title=sheet_name)
    sheet.append(['姓名', '语文成绩', '数学成绩', '英语成绩'])

# 读取学生成绩数据,并将数据写入到对应的sheet中
student_scores = [
    {'姓名': '张三', '语文成绩': 80, '数学成绩': 90, '英语成绩': 70},
    {'姓名': '李四', '语文成绩': 85, '数学成绩': 95, '英语成绩': 75},
    {'姓名': '王五', '语文成绩': 90, '数学成绩': 85, '英语成绩': 80}
]

for student_score in student_scores:
    sheet_name = 'Sheet' + str(student_scores.index(student_score) + 1)
    sheet = workbook[sheet_name]
    sheet.append([student_score['姓名'], student_score['语文成绩'], student_score['数学成绩'], student_score['英语成绩']])

# 保存Excel文件
workbook.save('student_scores.xlsx')

序列图

下面是创建多个sheet的过程的序列图:

sequenceDiagram
    participant 用户
    participant Python脚本
    participant Excel文件

    用户->>Python脚本: 执行Python脚本
    Python脚本->>Excel文件: 创建新的Excel文件
    Python脚本->>Excel文件: 创建多个sheet