python将多个excel合并一个文件不同的sheet,其中每个excel都有数量不等的sheet
时间: 2023-06-02 16:02:17 浏览: 189
python对多个Excel文件中的多个Sheet进行合并(每个sheet名须一致)
可以使用pandas库来实现将多个Excel合并成一个文件的操作。以下是实现的步骤:
1. 导入pandas库和os库:
```python
import pandas as pd
import os
```
2. 定义合并Excel的函数,该函数接受一个文件夹路径作为参数,遍历该文件夹下的所有Excel文件,并将每个Excel文件的所有sheet合并成一个文件:
```python
def merge_excel(folder_path):
# 获取文件夹下所有Excel文件的文件名
file_names = [f for f in os.listdir(folder_path) if f.endswith('.xlsx') or f.endswith('.xls')]
# 遍历所有Excel文件,将每个文件的所有sheet合并成一个DataFrame
dfs = []
for file_name in file_names:
file_path = os.path.join(folder_path, file_name)
sheets = pd.read_excel(file_path, sheet_name=None)
for sheet_name, df in sheets.items():
df['filename'] = file_name
df['sheetname'] = sheet_name
dfs.append(df)
# 将所有DataFrame合并成一个DataFrame
merged_df = pd.concat(dfs, sort=False)
return merged_df
```
3. 调用合并Excel的函数,将合并后的结果保存到一个新的Excel文件中:
```python
merged_df = merge_excel('/path/to/folder')
merged_df.to_excel('/path/to/merged_file.xlsx', index=False)
```
在上面的代码中,`/path/to/folder`是包含所有要合并的Excel文件的文件夹的路径,`/path/to/merged_file.xlsx`是合并后的结果要保存的Excel文件的路径。`merge_excel`函数会将所有Excel文件的所有sheet合并成一个DataFrame,并在每个DataFrame中添加一个`filename`列和一个`sheetname`列,用于标识该DataFrame来自哪个Excel文件的哪个sheet。最后,将所有DataFrame合并成一个DataFrame后,调用`to_excel`方法将结果保存到一个新的Excel文件中。
阅读全文