import pandas as pd
import os
import time
time_start = time.time()
rootdir = r'E:\路径1\路径11\路径1111'
list = os.listdir(rootdir) # 列出文件夹下所有的目录与文件
l = len(list)
for i in range(0, l):
path = os.path.join(rootdir, list[i])
df = pd.read_excel(path, header=2, converters={'XXX': str}) #数据(含列标题)从第三行起,XXX(列名称)强制转文本
if i == 0:
result = df
else:
result = result.append(df)
print(list[i])
time_end = time.time()
print('to_excel...')
result.to_excel(rootdir + '\\' + 'Excel合并.xlsx', index=False,engine='xlsxwriter') # 经测试对比,较大Excel合并时,xlsxwriter时间开销约为openpyxl的60%,且文件较小
time_end1 = time.time()
print('to_excel 完成!\n用时(秒):', time_end1 - time_end)
一般使用vba合并,但经常有一批需要合并的批量导出表,vba打开时受一个无法处理的提示信息影响,vba不能直接合并。用python合并却不受影响。