python将文件夹A中的表1的所有sheet和表2所有sheet合并成一个新的表3,保持sheet独立
时间: 2024-01-24 22:02:03 浏览: 79
以下是一个Python程序,可以将文件夹A中的表1的所有sheet和表2所有sheet合并成一个新的表3,以及保持sheet独立。该程序使用pandas库来处理Excel文件。
```
import os
import pandas as pd
# 定义文件夹路径
folder_path = 'path/to/folder/A'
# 定义表1和表2的文件名
file1_name = 'table1.xlsx'
file2_name = 'table2.xlsx'
# 定义新表的文件名
new_file_name = 'table3.xlsx'
# 定义新表的sheet名
sheet1_name = 'table1'
sheet2_name = 'table2'
# 获取文件夹中的所有文件
files = os.listdir(folder_path)
# 定义两个空的DataFrame来存储表1和表2的数据
df1 = pd.DataFrame()
df2 = pd.DataFrame()
# 遍历文件夹中的所有文件
for file_name in files:
# 判断文件是否是表1或表2
if file_name == file1_name:
# 读取表1的所有sheet
xls = pd.ExcelFile(os.path.join(folder_path, file_name))
for sheet_name in xls.sheet_names:
# 将每个sheet的数据添加到df1中
df = pd.read_excel(xls, sheet_name)
df1 = pd.concat([df1, df], axis=0)
elif file_name == file2_name:
# 读取表2的所有sheet
xls = pd.ExcelFile(os.path.join(folder_path, file_name))
for sheet_name in xls.sheet_names:
# 将每个sheet的数据添加到df2中
df = pd.read_excel(xls, sheet_name)
df2 = pd.concat([df2, df], axis=0)
# 将df1和df2分别保存到新表的sheet1和sheet2中
with pd.ExcelWriter(os.path.join(folder_path, new_file_name)) as writer:
df1.to_excel(writer, sheet_name=sheet1_name, index=False)
df2.to_excel(writer, sheet_name=sheet2_name, index=False)
```
在这个程序中,我们首先定义了文件夹路径、表1和表2的文件名、新表的文件名以及新表的sheet名。然后,我们使用`os.listdir()`函数获取文件夹中的所有文件,并遍历每个文件。如果文件是表1或表2,我们使用pandas库来读取每个sheet的数据,并将其添加到空的DataFrame中。最后,我们使用`pd.ExcelWriter()`函数将df1和df2分别保存到新表的sheet1和sheet2中。
请注意,这个程序假设表1和表2中的所有sheet具有相同的列名和数据类型。如果不是这种情况,需要进行额外的数据清洗和转换。
阅读全文