python將一個路徑中多個工作薄變爲一個工作薄中的多個工作表到其他路徑中
时间: 2023-11-08 19:05:37 浏览: 86
您可以使用Python中的pandas库来实现这个功能。具体步骤如下:
1. 使用pandas库中的read_excel函数读取多个工作薄,将它们存储为一个字典对象,其中键为文件名,值为DataFrame对象。
2. 将字典对象转换为一个大的DataFrame对象,使用pandas库中的concat函数。
3. 使用pandas库中的to_excel函数将大的DataFrame对象中的每个工作表存储到其他路径中。
下面是代码示例,请将多个工作薄存储在“input_folder”文件夹中,并将它们写入“output_folder”文件夹中的单个工作薄中:
```python
import os
import pandas as pd
# 读取多个工作薄
input_folder = './input_folder/'
workbooks = {}
for filename in os.listdir(input_folder):
if filename.endswith('.xlsx'):
workbook_name = os.path.splitext(filename)[0]
workbook_path = os.path.join(input_folder, filename)
workbook_df = pd.read_excel(workbook_path)
workbooks[workbook_name] = workbook_df
# 将多个工作薄合并为单个DataFrame对象
df = pd.concat(workbooks, axis=1)
# 将单个DataFrame对象中的每个工作表写入不同的文件中
output_folder = './output_folder/'
for sheet_name in df.columns.levels[1]:
sheet_df = df.xs(sheet_name, axis=1, level=1)
sheet_path = os.path.join(output_folder, sheet_name + '.xlsx')
sheet_df.to_excel(sheet_path, index=False)
```
请注意,此代码假定每个工作薄中只有一个工作表。如果每个工作薄中有多个工作表,则需要在第1步中使用pandas库中的read_excel函数的sheet_name参数指定要读取的工作表。
阅读全文