Python多sheet Excel按sheet合并(sheet名不同)
概述
在日常开发中,我们经常会遇到需要将多个Excel文件的不同sheet合并到一个sheet中的需求。本文将教会你如何使用Python来实现这一功能。
流程概览
下面是实现这一功能的整个流程概览:
| 步骤 | 操作 |
|---|---|
| 1 | 导入所需的库 |
| 2 | 获取所有Excel文件 |
| 3 | 遍历每个Excel文件的每个sheet |
| 4 | 将每个sheet的数据合并到一个新的Excel文件中的一个sheet |
| 5 | 保存新的合并后的Excel文件 |
现在,我们来逐步实现每个步骤。
1. 导入所需的库
首先,我们需要导入一些Python库来帮助我们实现这一功能。在这个例子中,我们将使用pandas和openpyxl库。pandas库提供了强大的数据处理功能,而openpyxl库则用于处理Excel文件。
import pandas as pd
from openpyxl import load_workbook
2. 获取所有Excel文件
接下来,我们需要获取所有需要合并的Excel文件。假设这些文件都放在同一个目录下,我们可以使用os库来获取目录中的所有文件。
import os
# 指定目录
folder_path = "path/to/excel/files"
# 获取目录中的所有文件
files = os.listdir(folder_path)
# 过滤出Excel文件
excel_files = [file for file in files if file.endswith(".xlsx") or file.endswith(".xls")]
3. 遍历每个Excel文件的每个sheet
接下来,我们需要遍历每个Excel文件的每个sheet,并将这些sheet的数据合并到一个新的Excel文件中的一个sheet。我们可以使用pandas库的read_excel函数来读取Excel文件,然后使用openpyxl库来处理Excel文件。
# 创建一个新的Excel文件
merged_file = pd.ExcelWriter("path/to/merged_file.xlsx", engine="openpyxl")
# 遍历每个Excel文件
for file in excel_files:
# 读取Excel文件
excel_data = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
# 遍历每个sheet
for sheet_name, df in excel_data.items():
# 将每个sheet的数据写入新的Excel文件的一个sheet
df.to_excel(merged_file, sheet_name=sheet_name, index=False)
# 保存新的合并后的Excel文件
merged_file.save()
在上面的代码中,我们使用pd.ExcelWriter创建了一个新的Excel文件,并指定了使用openpyxl引擎来处理Excel文件。然后,我们遍历每个Excel文件,在每个文件中遍历每个sheet,并使用pd.read_excel函数读取每个sheet的数据。最后,我们使用df.to_excel将每个sheet的数据写入新的Excel文件的一个sheet中。
4. 保存新的合并后的Excel文件
最后,我们需要保存新的合并后的Excel文件。我们使用merged_file.save()函数来保存文件。
# 保存新的合并后的Excel文件
merged_file.save()
完整代码
下面是完整的代码:
import os
import pandas as pd
from openpyxl import load_workbook
# 指定目录
folder_path = "path/to/excel/files"
# 获取目录中的所有文件
files = os.listdir(folder_path)
# 过滤出Excel文件
excel_files = [file for file in files if file.endswith(".xlsx") or file.endswith(".xls")]
# 创建一个新的Excel文件
merged_file = pd.ExcelWriter("path/to/merged_file.xlsx", engine="openpyxl")
# 遍历每个Excel文件
for file in excel_files:
# 读取Excel文件
excel_data = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
# 遍历每个sheet
for sheet_name, df in excel_data.items():
# 将每个sheet的数据写入新的Excel文件的一个sheet
df.to_excel(merged_file, sheet_name=sheet_name, index=False)
# 保存新的合并后的Excel文件
merged_file.save()
以上就是使用Python实现多
















