python 读取文件夹下多个excel文件中除某一指定sheet外的sheet合并到同一excel文件的不同sheet,并且保留原始sheet格式
时间: 2023-10-15 18:05:55 浏览: 216
可以使用Python中的`pandas`库来读取和操作Excel文件。以下是一个示例代码,可以读取指定文件夹下所有Excel文件(除指定的sheet外),并将它们合并到同一Excel文件的不同sheet中,同时保留原始sheet格式:
```python
import os
import pandas as pd
# 指定读取文件夹路径和输出文件路径
folder_path = 'path/to/folder'
output_path = 'path/to/output/file.xlsx'
# 指定需要排除的sheet名称
excluded_sheets = ['Sheet1', 'Sheet2']
# 创建一个空的DataFrame,用于存储所有sheet数据
merged_data = pd.DataFrame()
# 遍历文件夹中的所有Excel文件
for file_name in os.listdir(folder_path):
if file_name.endswith('.xlsx'):
file_path = os.path.join(folder_path, file_name)
print(f'Reading file: {file_name}')
# 读取Excel文件中的所有sheet
sheets = pd.read_excel(file_path, sheet_name=None)
# 遍历所有sheet,仅保留非指定名称的sheet
for sheet_name, sheet_data in sheets.items():
if sheet_name not in excluded_sheets:
# 将所有sheet数据合并到一个DataFrame中
merged_data = pd.concat([merged_data, sheet_data])
# 将所有sheet数据写入同一Excel文件的不同sheet中
with pd.ExcelWriter(output_path) as writer:
for sheet_name, sheet_data in merged_data.groupby(merged_data.index):
sheet_data.to_excel(writer, sheet_name=sheet_name, index=False)
```
在上面的代码中,我们首先指定了文件夹路径和输出文件路径,以及需要排除的sheet名称。然后,我们遍历文件夹中的所有Excel文件,读取每个文件中的所有sheet,并将非指定名称的sheet合并到一个DataFrame中。最后,我们将所有sheet数据写入同一Excel文件的不同sheet中。
需要注意的是,由于每个sheet可能具有不同的列和行数,因此我们需要使用`groupby`方法将所有数据按照索引分组,以便在写入Excel文件时保留原始格式。
阅读全文