Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 将excel文件与其所有工作表连接起来_Python_Concatenation_Worksheet - Fatal编程技术网

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

Python 将excel文件与其所有工作表连接起来,python,concatenation,worksheet,Python,Concatenation,Worksheet,我有两个相同名称的excel文件保存在不同的目录下,第一个文件有两个表rapp détaillé和délai de reconnection,第二个文件有一个表名为rapp détaill 我需要连接这两个文件: 连接具有相同名称的图纸 保留第一个文件中的第二张图纸 因此,输出的excel文件需要有两张表,第一张是Rapport détaillé,第二张是délai de reconnection 我的代码只连接前两张表,t不考虑表的名称 import glob import pandas as

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

我需要连接这两个文件:

  • 连接具有相同名称的图纸
  • 保留第一个文件中的第二张图纸
  • 因此,输出的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)
    

    你试过这种东西吗

    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_name方面遇到了问题,这取决于版本。

    对于这个用例,pandas可能不是最佳选择。您可以使用openpyxl读取excel文件,使用xlsxwriter编写组合excel文件,并对其外观进行良好控制。(或者使用pandas读取excel,但使用xlsxwriter编写)使用
    Python3.x
    我们使用
    sheet\u name