在Python中如何依据sheet对多个excel进行合并
Admin 2022-07-06 群英技术资讯 1043 次浏览
这篇文章主要介绍“在Python中如何依据sheet对多个excel进行合并”的相关知识,下面会通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“在Python中如何依据sheet对多个excel进行合并”文章能帮助大家解决问题。工作中会遇到这样的需求,有多个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密码学RSA密码解密教程,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
在本篇文章里小编给大家整理的是一篇关于python引入其他文件夹下的py文件具体方法,有兴趣朋友们可以跟着学习参考下。
这篇文章主要为大家介绍了python人工智能tensorflowtf优化器Optimizer算法汇总,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
CGI 程序可以是 Python 脚本,PERL 脚本,SHELL 脚本,C 或者 C++ 程序等。CGI 目前由 NCSA 维护,NCSA 定义 CGI 如下: CGI(Common Gateway Interface),通用网关接口,它是一段程序,运行在服务器上如:HTTP服务器,提供同客户端 HTML 页面的接口。
这篇文章主要介绍了基于Pygame实现一个画饼图游戏,可以根据键盘上输入不同的数字,将圆分割成不同的几个部分,每部分用不同的颜色来实现。需要的朋友可以参考一下
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008