python-将一个excel中多个sheet合并至新表格中一个sheet
'''
将多个/一个excel表格中的sheet合并至新表格中的一个sheet
'''
1 # -*- coding: utf-8 -*- 2 3 # 导入需要使用的包 4 import xlrd # 读取excel文件的包 5 import xlsxwriter # 将文件写入excel的包 6 7 # 打开一个excel文件 8 def open_xls(file): 9 f = xlrd.open_workbook(file) 10 return f 11 12 # 获取excel中所有的sheet表 13 def getsheet(f): 14 return f.sheets() 15 16 # 获取sheet表的行数 17 def get_Allrows(f,sheet): 18 table = f.sheets()[sheet] 19 return table.nrows 20 21 # 读取文件内容并返回行内容 22 def getFile(file,shnum): 23 f=open_xls(file) 24 table=f.sheets()[shnum] 25 num=table.nrows 26 for row in range(num): 27 rdata=table.row_values(row) 28 datavalue.append(rdata) 29 return datavalue 30 31 # 获取sheet表的个数 32 def getshnum(f): 33 x=0 34 sh=getsheet(f) 35 for sheet in sh: 36 x+=1 37 return x 38 39 # 函数入口 40 if __name__=='__main__': 41 # # 定义要合并的excel文件列表 42 # dir = './tstdb' 43 # # 获取目录下所有的表 44 # allxls = os.listdir(dir) 45 allxls=['./tables.xls'] #列表中的为要读取的文件路径 46 # 存储所有读取的结果 47 datavalue=[] 48 for fl in allxls: 49 # fl = os.path.join(dir,onexls) 50 f=open_xls(fl) 51 x=getshnum(f) 52 for shnum in range(x): 53 print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...") 54 rvalue=getFile(fl,shnum) 55 # 定义最终合并后生成的新文件 56 endfile='excel.xlsx' 57 wb=xlsxwriter.Workbook(endfile) 58 # 创建一个sheet工作对象 59 ws=wb.add_worksheet() 60 for a in range(len(rvalue)): 61 for b in range(len(rvalue[a])): 62 c=rvalue[a][b] 63 ws.write(a,b,c) 64 wb.close() 65 print("文件合并完成")