实例4:python获取所有excel表的字段

实例所用资源: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')  # 打印出所花费的时间

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值