在Python中如何依据sheet对多个excel进行合并
Admin 2022-07-06 群英技术资讯 513 次浏览
工作中会遇到这样的需求,有多个Excel的格式一样,都有多个sheet,且每个sheet的名字和格式一样,我们需要按照sheet 合并,就是说合并后的表的格式和合并钱的格式是一样的。A、B、C表格式如图
现在需要合并成下图:
我这次处理是保留第一个表的首行,其余的表的首行都不保留。因此结果会和上面有所不同,上面的是将所有的首行都保存
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()
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
Python内置函数-divmod()函数。Python divmod() 函数接收两个数字类型(非复数)参数,返回一个包含商和余数的元组(a // b, a % b)。在 python 3.x 版本该函数不支持复数。
python怎么打空字符串?Python中空字符串用""表示。另外讲一下Python中的none,python中的内建常数,是NoneType中唯一的值,且不能赋值。一般用于函数中表示参数的缺省。
这篇文章主要介绍了如何通过OpenCV MediaPipe实现手部关键点识别,文中的示例代码讲解详细,对我们学习或工作有一定的价值,需要的可以参考一下
Python例子-用python语言实现九九乘法表,并输出
这篇文章主要介绍了python爬虫scrapy框架用法的用法,对于新手学习scrapy框架有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章能有所收获,接下来小编带着大家一起了解看看。
成为群英会员,开启智能安全云计算之旅
立即注册Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008