excel学习库

excel表格_excel函数公式大全_execl从入门到精通

openpyxl汇总excel表格

在工作中可能会遇到把多个工作表汇总到一块的情况,如果需要汇总的表比较少还可以用复制粘贴的办法一个个处理,但如果工作表比较多,或者数据量比较大,手动汇总起来就比较麻烦了,这时可以使用openpyxl来读取处理。 首先是导入需要的库: import os from openpyxl import Workbook from openpyxl import load_workbook import time t0 = time.time() 然后是读取当前目录下的所有xlsx文件,保存到列表 os.system("DIR *.* /B>list.txt") f = open("list.txt", "r") name=[] while True: line = f.readline() if line: line=line[0:len(line)-1] #delete char '\n' #print (line) if line.endswith('xlsx',len(line)-4,len(line) ): name.append(line) else: break if len(name)==0: print('No .xlsx file in this directory') exit() 建立一个输出文件: outbook = Workbook() #输出book对象 outsheet = outbook.active #获取book的sheet 循环读取xlsx文件,保存到输出文件中: outr=0 for n in name: outsheet_r = outsheet.max_row #获取outsheet工作表行数 outsheet_c = outsheet.max_column #获取outsheet工作表行数 print("当前输出工作表行数、列数:", outsheet_r , " " , outsheet_c ) print('读取工作表name: ',end='') print(n) rbook = load_workbook( n ) #打开名为 n 的工作簿,赋值给变量 rbook rsheet = rbook.sheetnames #获取该工作簿下所有工作表名,赋值给 列表变量 rsheet #sheet1 = rbook.get_sheet_by_name(rsheet[0]) #用下句替换 sheet1 = rbook[rsheet[0]] #激活第一个工作表,赋值给sheet1变量 r = sheet1.max_row #获取第一个工作表行数 c = sheet1.max_column #获取第一个工作表行数 print("当前读取工作表行数、列数:", r , " " , c ) for i in range(1,r+1): #因为range函数,不包括后一个值,所以加1 for j in range(1,c+1): #因为range函数,不包括后一个值,所以加1 outsheet.cell(row=outsheet_r + i ,column= j ).value = sheet1.cell(row=i,column=j).value outr=outr+1 print("\n") #outbook.save('out.xlsx') #保存输出 outbook.save('out.xlsx') #保存输出 最后看一下汇总的时间: print("已汇总%d个工作表,工作表名为:%s" %(outr,name) ) t = ( time.time() - t0 )/60 print("耗时%d分钟" % t) 这样编写好脚本,下一次,直接在需要汇总的文件夹下运行,就可以生成汇总后的文件了。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接