python合并多个excel文件,每个Excel中有多个sheet,合并后的表格中也有对应的多个sheet
时间: 2023-06-02 14:02:11 浏览: 228
Python将多份excel表格整理成一份表格
可以使用Python中的pandas库来实现合并多个Excel文件,每个Excel中有多个sheet,合并后的表格中也有对应的多个sheet。具体步骤如下:
1. 导入pandas库和os库,用于读取和处理Excel文件
```python
import pandas as pd
import os
```
2. 定义一个函数,用于读取指定文件夹下的所有Excel文件,返回一个包含所有Excel文件名的列表
```python
def get_excel_list(folder_path):
excel_list = []
for filename in os.listdir(folder_path):
if filename.endswith('.xlsx') or filename.endswith('.xls'):
excel_list.append(os.path.join(folder_path, filename))
return excel_list
```
3. 定义一个函数,用于读取指定Excel文件的所有sheet,返回一个包含所有sheet的DataFrame列表
```python
def read_excel_sheets(excel_file):
sheet_list = []
excel_data = pd.ExcelFile(excel_file)
for sheet_name in excel_data.sheet_names:
sheet_data = pd.read_excel(excel_file, sheet_name)
sheet_list.append(sheet_data)
return sheet_list
```
4. 定义一个函数,用于将多个DataFrame合并成一个Excel文件,每个DataFrame对应一个sheet
```python
def merge_excel_sheets(sheet_list, output_file):
with pd.ExcelWriter(output_file) as writer:
for index, sheet_data in enumerate(sheet_list):
sheet_data.to_excel(writer, sheet_name='Sheet{}'.format(index+1), index=False)
```
5. 调用上述函数实现合并多个Excel文件的操作
```python
# 定义文件夹路径和输出文件名
folder_path = 'folder_path'
output_file = 'output_file.xlsx'
# 获取所有Excel文件名
excel_list = get_excel_list(folder_path)
# 读取所有Excel文件的所有sheet
sheet_list = []
for excel_file in excel_list:
sheet_list.extend(read_excel_sheets(excel_file))
# 合并所有sheet到一个Excel文件中
merge_excel_sheets(sheet_list, output_file)
```
这样就可以将多个Excel文件中的所有sheet合并到一个Excel文件中,每个sheet对应一个原始文件的sheet。
阅读全文