新闻动态

python 按照sheet合并多个Excel的示例代码(多个sheet)

发布日期:2022-01-22 15:37 | 文章来源:脚本之家

工作中会遇到这样的需求,有多个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()

到此这篇关于python 按照sheet合并多个Excel的示例代码(多个sheet)的文章就介绍到这了,更多相关python 合并多个excel内容请搜索本站以前的文章或继续浏览下面的相关文章希望大家以后多多支持本站!

版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。

相关文章

实时开通

自选配置、实时开通

免备案

全球线路精选!

全天候客户服务

7x24全年不间断在线

专属顾问服务

1对1客户咨询顾问

在线
客服

在线客服:7*24小时在线

客服
热线

400-630-3752
7*24小时客服服务热线

关注
微信

关注官方微信
顶部