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

  • Post category:Python

下面我来详细讲解“Python使用Excel将数据写入多个sheet”的完整实例教程。

1.准备工作

1.1 安装Python库

首先,需要安装Python的相关库 pandas 和 openpyxl。可以通过以下命令来安装:

pip install pandas openpyxl

1.2 准备数据

在开始代码编写之前,我们需要准备一些数据,这里我们以三个 DataFrame 数据为例。

import pandas as pd

# 创建数据
df1 = pd.DataFrame({'name': ['Alice', 'Bob', 'Charlie'],
                    'age': [25, 26, 27],
                    'gender': ['F', 'M', 'M']})

df2 = pd.DataFrame({'city': ['Beijing', 'Shanghai', 'Guangzhou'],
                    'temperature': [24, 26, 28],
                    'weather': ['sunny', 'cloudy', 'rainy']})

df3 = pd.DataFrame({'fruit': ['apple', 'orange', 'banana'],
                    'price': [5.5, 3.2, 2.8],
                    'quantity': [10, 20, 15]})

2.实现代码

接下来就可以开始实现代码了。

2.1 创建 Excel 文件

首先创建一个新的 Excel 文件,并设置工作簿名为 test.xlsx

from openpyxl import Workbook

# 创建一个新的 Excel 文件
wb = Workbook()
# 设置工作簿名
ws1 = wb.active
ws1.title = 'Sheet1'

2.2 写入数据到 Excel 文件中

然后将每个 DataFrame 写入 Excel 文件的不同工作簿中。以下代码将 df1 的数据写入到 Sheet1 工作簿中:

from openpyxl.utils.dataframe import dataframe_to_rows

# 将数据写入 Sheet1 工作簿中
for r in dataframe_to_rows(df1, index=True, header=True):
    ws1.append(r)

为了将 df2 和 df3 数据写入到不同的工作簿中,我们需要首先创建一个新的工作簿,并将其添加到 Excel 文件中:

# 创建一个新的工作簿 Sheet2,并将其添加到 Excel 文件中
ws2 = wb.create_sheet('Sheet2')
# 创建一个新的工作簿 Sheet3,并将其添加到 Excel 文件中
ws3 = wb.create_sheet('Sheet3')

然后将 df2 的数据写入到新创建的 Sheet2 工作簿中:

# 将数据写入 Sheet2 工作簿中
for r in dataframe_to_rows(df2, index=True, header=True):
    ws2.append(r)

最后将 df3 的数据写入到新创建的 Sheet3 工作簿中:

# 将数据写入 Sheet3 工作簿中
for r in dataframe_to_rows(df3, index=True, header=True):
    ws3.append(r)

2.3 保存 Excel 文件

最后,可以将 Excel 文件保存到本地磁盘中:

# 保存 Excel 文件
wb.save('test.xlsx')

3.示例说明

3.1 示例1

假设需要将数据分别写入到 Sheet1Sheet2Sheet3 三个工作簿中。可以按照上述步骤编写代码,最后得到的 Excel 文件应该包含三个工作簿,分别为 Sheet1Sheet2Sheet3,每个工作簿中分别包含对应的数据。

3.2 示例2

假设现在需要将数据写入到已经存在的 Excel 文件中,可以使用 openpyxl 库中的 load_workbook() 方法加载已经存在的 Excel 文件,并将新的工作簿和数据写入到已有的 Excel 文件中,示例如下:

from openpyxl import load_workbook

# 加载存在的 Excel 文件
wb = load_workbook('test.xlsx')
# 创建一个新的工作簿 Sheet4,并将其添加到 Excel 文件中
ws4 = wb.create_sheet('Sheet4')
# 将数据写入 Sheet4 工作簿中
for r in dataframe_to_rows(df3, index=True, header=True):
    ws4.append(r)
# 保存 Excel 文件
wb.save('test.xlsx')

以上代码将 df3 的数据写入到新创建的 Sheet4 工作簿中,并且保留了已有的 Sheet1Sheet2Sheet3 三个工作簿的数据。