实例所用资源:https://download.youkuaiyun.com/download/weixin_46623003/16671799
一、数据情况
1、原数据
文件夹:test3_combine_first_colum下的内容:
2、结果
1)生成文件夹:result
2)文件夹:result下生成文件:各表字段情况
二、python实现代码
-------------
所有工作已完成!
time cost: 9.295541286468506 s
import os
import xlwings as xw
import time
time_start = time.time()
path = r'C:\个人文件夹\Data analysis learning\skit-learn\Workspace\document_vscode\test3_combine_first_colum'
# 一、获取文件名字
files = os.listdir(path) # 获取所有文件名,包括文件夹
# 二、遍历excel,复制第一行到新表
app = xw.App( visible=True, add_book=False )
app.screen_updating=False # 关闭屏幕更新
wb1 = app.books.add() # 新建工作簿
wb1.sheets.add('各表字段汇总') # 新建sheet
sht1 = wb1.sheets['各表字段汇总']
i = 1
for file in files:
try:
excel_path = path+'/'+file
wb = app.books.open(excel_path)
sht = wb.sheets(1) # 复制区域为每个excel第一张sheet的表头
sht1.range(i,1).expand("table").clear_contents()
#以上是清除单元格a1至扩展的部分并保留格式,如果不想要格式,就删掉_contents()
sht1.range(i,1).value = file # 将第一列内容写入excel的名称
wb.sheets['sheet1'].range((1,1),(1,sht.api.UsedRange.Columns.count)).api.Copy(sht1.range(i,2).api) # 复制每张表第1行
# wb.sheets(1).range((6,1),(6,sht.api.UsedRange.Columns.count)).api.Copy(sht1.range(i,2).api) # 复制每张表第6行
# sht.range((6,1),(6,sht.api.UsedRange.Columns.count)).api.Copy(sht1.range(i,2).api) # 复制每张表第6行
# 以上为复制粘贴代码:意思是从"要复制的工作簿”的第一个工作表的单元格a1到扩展部分复制给“粘贴的工作簿”的指定的”粘贴的工作表”
wb.close()
i = i+1
except:
pass
try:
os.makedirs(path+'/'+'result') # 建立文件夹,用try语句跳过异常(比如已经有该文件夹)
except:
pass
wb1.save(path+'/'+'result'+'/'+'各表字段情况.xlsx') # 保存excel到指定位置
# 三、退出excel关闭app
wb1.close()
app.screen_updating=True # 最后需要打开屏幕更新,以免影响到下次excel的操作
app.quit()
time_end = time.time()
print('-------------\n\n所有工作已完成!\n\n','time cost:',time_end - time_start,'s') # 打印出所花费的时间