使用Python将多个Excel文件合并为一个主文件

时间:2019-07-05 11:04:15

标签: python excel

我正在处理我的论文数据,其中有多个人执行相同数量的实验。因此,人x拥有实验1至7,依此类推。

我设法为每个人创建了7个独立的excel文件。但我需要的是x人的一个Excel文件,每个工作结果7张。

我已经搜索了很多东西,但似乎找不到合适的解决方案,希望有人可以帮助我。

counter_scenario = 1

wb = load_workbook(f'ID01_S{counter_scenario}.xlsx')
wb.create_sheet(f'ID01_S{counter_scenario}')
wb.save('ID01_No crash.xlsx')

counter_scenario += 1

我现在得到的是一个覆盖前一张纸的文件。因此,最后我只有一张包含实验7的数据的表。虽然我运行代码,但“主文件”一直在更新,(对我来说)这表明数据已写入其中,但它只会覆盖数据。

1 个答案:

答案 0 :(得分:2)

首先,我们将把一个人的所有练习本读入熊猫

df1 = pd.read_excel('person_1_exp1.xlsx')
df2 = pd.read_excel('person_1_exp2.xlsx')
df3 = pd.read_excel('person_1_exp3.xlsx')
# and so on

我们创建一个新的xlsx文件,该文件将分别包含每个人的所有实验:“ Person_1_results.xlsx”

writer = pd.ExcelWriter(
    save_path.format("Person_1_results.xlsx"),
    engine='xlsxwriter')
# Convert the dataframe to an XlsxWriter Excel object.
df1.to_excel(
    writer,
    sheet_name='Experiment_1',
    startrow=0,
    startcol=0,
    index=False)
df2.to_excel(
    writer,
    sheet_name='Experiment_2',
    startrow=0,
    startcol=0,
    index=False)
df3.to_excel(
    writer,
    sheet_name='Experiment_3',
    startrow=0,
    startcol=0,
    index=False)
# and so on

# Get the xlsxwriter workbook and worksheet objects.
workbook = writer.book
worksheet1 = writer.sheets['Experiment_1']
worksheet2 = writer.sheets['Experiment_2']
worksheet2 = writer.sheets['Experiment_3']
# and so on

如果文件命名一致,则可以修改此解决方案并添加循环以制作重复的部分