python合并多个excel的详细过程

  • Post category:Python

以下是Python合并多个Excel的详细过程,包含两个示例说明:

准备工作

在开始之前,需要先安装以下的Python第三方库:
– pandas
– openpyxl

使用以下命令进行安装:

pip install pandas openpyxl

实现步骤

  1. 导入必要的库

python
import os
import pandas as pd
from openpyxl import load_workbook

  1. 设置需要合并的文件夹路径和输出文件路径

python
folder_path = r'your_folder_path'
output_path = r'output_file_path.xlsx'

  1. 获取文件夹中所有Excel文件名

python
file_list = []
for root, dirs, files in os.walk(folder_path):
for file in files:
if file.endswith('.xlsx'):
file_list.append(os.path.join(root, file))

  1. 合并多个Excel文件

python
writer = pd.ExcelWriter(output_path, engine='openpyxl')
for file in file_list:
_, filename = os.path.split(file)
sheet_name = os.path.splitext(filename)[0]
df = pd.read_excel(file, sheet_name=None, ignore_index=True)
for sheet_name, data in df.items():
data.to_excel(writer, sheet_name=sheet_name, index=False, header=False)
writer.save()

以上代码中,首先使用pd.ExcelWriter创建一个输出Excel的写入器,然后遍历所有Excel文件,逐个读取每个文件的所有sheet并拼接到一个DataFrame中,最后将该DataFrame按sheet名写入到输出Excel中。需要注意的是,to_excel中的参数header=Falseindex=False是为了让输出Excel中不包含多余的行和列。

  1. 打印输出文件路径

python
print(f'Merged file successfully saved to: {output_path}')

完成以上步骤,即可成功将文件夹下所有Excel文件合并到一个输出文件中。

示例说明

以下是两个示例说明:

示例1

需要合并的文件夹folder_path下有三个Excel文件:

folder_path
├── file1.xlsx
├── file2.xlsx
└── file3.xlsx

使用以上步骤,输出一个名为output_file_path.xlsx的Excel文件,其中包含了file1.xlsxfile2.xlsxfile3.xlsx的所有sheet。

示例2

需要合并的文件夹folder_path下有两个Excel文件,其中有重名的sheet。

folder_path
├── file1.xlsx
└── file2.xlsx

其中file1.xlsxfile2.xlsx都有一个名为Sheet1的sheet。

使用以上步骤,输出一个名为output_file_path.xlsx的Excel文件,其中包含了file1.xlsxfile2.xlsx的所有sheet,但是因为这两个Excel中都有一个名为Sheet1的sheet,所以在输出文件中,Sheet1会出现两次。