温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

python如何按照sheet合并多个Excel

发布时间:2021-09-06 17:32:27 来源:亿速云 阅读:234 作者:小新 栏目:开发技术

小编给大家分享一下python如何按照sheet合并多个Excel,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

工作中会遇到这样的需求,有多个Excel的格式一样,都有多个sheet,且每个sheet的名字和格式一样,我们需要按照sheet 合并,就是说合并后的表的格式和合并钱的格式是一样的。A、B、C表格式如图

python如何按照sheet合并多个Excelpython如何按照sheet合并多个Excel

现在需要合并成下图:

python如何按照sheet合并多个Excelpython如何按照sheet合并多个Excel

我这次处理是保留第一个表的首行,其余的表的首行都不保留。因此结果会和上面有所不同,上面的是将所有的首行都保存

import xlrd,xlsxwriter #待合并excel allxls=["C:/xxx/xxx.xlsx",         "C:/xxx/xxx.xlsx"] #目标excel end_xls="C:/xxx/merge.xlsx" def open_xls(file):     try:         fh=xlrd.open_workbook(file)         return fh     except Exception as e:         print("打开文件错误:"+e) #根据excel名以及第几个标签信息就可以得到具体标签的内容 def get_file_value(filename,sheetnum):     rvalue=[]     fh=open_xls(filename)     sheet=fh.sheets()[sheetnum]     row_num=sheet.nrows     for rownum in range(0,row_num):         rvalue.append(sheet.row_values(rownum))     return rvalue def get_file_value_1(filename,sheetnum):     rvalue=[]     fh=open_xls(filename)     sheet=fh.sheets()[sheetnum]     row_num=sheet.nrows     for rownum in range(1,row_num):         rvalue.append(sheet.row_values(rownum))     return rvalue #获取第一个excel的sheet个数以及名字作为标准 first_file_fh=open_xls(allxls[0]) first_file_sheet=first_file_fh.sheets() first_file_sheet_num=len(first_file_sheet) sheet_name=[] for sheetname in first_file_sheet:     sheet_name.append(sheetname.name) #定义一个目标excel endxls=xlsxwriter.Workbook(end_xls) all_sheet_value=[] #把所有内容都放到列表all_sheet_value中 for sheet_num in range(0,first_file_sheet_num):     all_sheet_value.append([])     for i,file_name in enumerate(allxls):         if i==0:             print("正在读取"+file_name+"的第"+str(sheet_num+1)+"个标签...")                     file_value=get_file_value(file_name,sheet_num)             all_sheet_value[sheet_num].append(file_value)         else:             print("正在读取"+file_name+"的第"+str(sheet_num+1)+"个标签...")                     file_value=get_file_value_1(file_name,sheet_num)             all_sheet_value[sheet_num].append(file_value)              #print(all_sheet_value) num=-1 sheet_index=-1 #将列表all_sheet_value的内容写入目标excel for sheet in all_sheet_value:     sheet_index+=1     end_xls_sheet=endxls.add_worksheet(sheet_name[sheet_index])     num+=1     num1=-1     for sheet1 in sheet:         for sheet2 in sheet1:             num1+=1             num2=-1             for sheet3 in sheet2:                 num2+=1                 #print(num,num1,num2,sheet3)                 #在第num1行的第num2列写入sheet3的内容                 end_xls_sheet.write(num1,num2,sheet3) endxls.close()

以上是“python如何按照sheet合并多个Excel”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI