以下是Python合并多个Excel的详细过程,包含两个示例说明:
准备工作
在开始之前,需要先安装以下的Python第三方库:
– pandas
– openpyxl
使用以下命令进行安装:
pip install pandas openpyxl
实现步骤
- 导入必要的库
python
import os
import pandas as pd
from openpyxl import load_workbook
- 设置需要合并的文件夹路径和输出文件路径
python
folder_path = r'your_folder_path'
output_path = r'output_file_path.xlsx'
- 获取文件夹中所有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))
- 合并多个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=False
和index=False
是为了让输出Excel中不包含多余的行和列。
- 打印输出文件路径
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.xlsx
、file2.xlsx
和file3.xlsx
的所有sheet。
示例2
需要合并的文件夹folder_path
下有两个Excel文件,其中有重名的sheet。
folder_path
├── file1.xlsx
└── file2.xlsx
其中file1.xlsx
和file2.xlsx
都有一个名为Sheet1
的sheet。
使用以上步骤,输出一个名为output_file_path.xlsx
的Excel文件,其中包含了file1.xlsx
和file2.xlsx
的所有sheet,但是因为这两个Excel中都有一个名为Sheet1
的sheet,所以在输出文件中,Sheet1
会出现两次。