将excel文件与其所有工作表连接起来

2024-10-06 10:28:26 发布

您现在位置:Python中文网/ 问答频道 /正文

我有两个同名的excel文件保存在不同的目录下,第一个文件有两个表Rapport détailléDélai de reconnection,第二个文件有一个表名为Rapport détaillé

我需要连接这两个文件:

  1. 连接具有相同名称的工作表
  2. 保留第一个文件的第二张

所以输出的excel文件需要有两张表,第一张是Rapport détaillé,第二张是Délai de reconnection

我的代码只连接前两个表,t不考虑表的名称

import glob
import pandas as pd
import os,sys,inspect

d2 = 'C:/Users/khouloud/Desktop/cleanVersion/Reports'
d1 = 'C:/Users/khouloud/Desktop/Reports'

output_dir =FinalResult

file_d1 = glob.glob(d1 + "/*.xlsx")
file_d2 = glob.glob(d2 + "/*.xlsx")
i=0
#  
for file_d1 in glob.glob(d1 + "/*.xlsx"):
    fileName_d1 = os.path.splitext(os.path.splitext(os.path.basename(file_d1))[0])[0]       
    for file_d2 in glob.glob(d2 + "/*.xlsx"):
        fileName_d2 = os.path.splitext(os.path.splitext(os.path.basename(file_d2))[0])[0]
        if fileName_d1 == fileName_d2:
            i+=1
            fileName_1=d1+'/'+fileName_d1+'.xlsx'
            df1 = pd.read_excel(fileName_1, header=0, index= False)
            fileName_2=d2+'/'+fileName_d2+'.xlsx'
            df2 = pd.read_excel(fileName_2, header=0, index= False)
            df = pd.DataFrame(np.concatenate([df1.values, df2.values]), columns=df2.columns)
            print('**********************************************')
            print(df)
            print('**********************************************')
            df.to_excel(FinalResult+'/'+fileName+'/'+fileName_d1+'.xlsx', index = False, header=True)

Tags: 文件pathimportosfilenamexlsxexcelglob
1条回答
网友
1楼 · 发布于 2024-10-06 10:28:26

你试过这种东西吗

rd1 = pd.read_excel(filename1, sheet_name = 'Rapport détaillé')
ddr = pd.read_excel(filename1, sheet_name = 'Délai de reconnection')
rd2 = pd.read_excel(filename2, sheet_name = 'Rapport détaillé')
rd_comb = pd.concat([rd1,rd2])

writer = pd.ExcelWriter(target_file_name, 
engine='xlsxwriter')
rd_comb .to_excel(writer, sheet_name = 'Rapport détaillé')
ddr.to_excel(writer, sheet_name = 'Délai de reconnection')
writer.save()

在过去,我遇到过sheetname和sheet\u name的问题,这取决于版本

相关问题 更多 >