将 excel 个文件与其所有工作表 Python 连接起来
Concatenate excel files with all their sheets Python
我有两个同名的excel文件保存在不同的目录下,第一个文件有两个sheetRapport détaillé
和Délai de reconnection
,第二个文件有一个 sheet 名为 Rapport détaillé
.
我需要连接这两个文件:
- 连接 sheet 个同名
- 保留第一个文件中的第二个 sheet
所以输出excel文件需要有两个sheet,第一个是Rapport détaillé
,第二个是Délai de reconnection
。
我的代码只连接前两个 sheets,没有考虑 sheet.
的名称
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 的问题,具体取决于版本。
我有两个同名的excel文件保存在不同的目录下,第一个文件有两个sheetRapport détaillé
和Délai de reconnection
,第二个文件有一个 sheet 名为 Rapport détaillé
.
我需要连接这两个文件:
- 连接 sheet 个同名
- 保留第一个文件中的第二个 sheet
所以输出excel文件需要有两个sheet,第一个是Rapport détaillé
,第二个是Délai de reconnection
。
我的代码只连接前两个 sheets,没有考虑 sheet.
的名称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 的问题,具体取决于版本。