python 按照sheet合并多个Excel的示例代码(多个sheet)
作者:小小喽啰 时间:2022-07-13 05:20:20
工作中会遇到这样的需求,有多个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()
来源:https://www.cnblogs.com/cgmcoding/p/15233800.html
标签:python,合并,excel
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
离线安装Pyecharts的步骤以及依赖包流程
2021-12-16 11:43:12
![](https://img.aspxhome.com/file/2023/0/135170_0s.jpg)
python基础教程之简单入门说明(变量和控制语言使用方法)
2023-01-06 00:25:20
php 伪造本地文件包含漏洞的代码
2023-11-17 06:36:40
有时应该告诉我,但有时不应该告诉我
2009-03-19 13:40:00
![](https://img.aspxhome.com/file/UploadPic/20093/19/login1-79s.jpg)
php动态生成版权所有信息的方法
2024-05-02 17:17:30
Python3.9.1中使用split()的处理方法(推荐)
2022-04-17 23:16:12
![](https://img.aspxhome.com/file/2023/6/126946_0s.png)
在Python的框架中为MySQL实现restful接口的教程
2024-01-13 08:09:54
![](https://img.aspxhome.com/file/2023/0/107100_0s.png)
SQL Server存储过程中编写事务处理的方法小结
2024-01-15 15:24:24
python登陆asp网站页面的实现代码
2021-01-20 00:03:31
go语言编程之select信道处理示例详解
2024-04-26 17:16:14
matlab画三维图像的示例代码(附demo)
2023-10-03 11:39:44
![](https://img.aspxhome.com/file/2023/9/131869_0s.jpg)
ASP进阶学习之认识数学函数
2007-10-08 13:15:00
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
2021-02-24 10:21:59
MySQL内连接和外连接及七种SQL JOINS的实现
2024-01-21 09:23:16
![](https://img.aspxhome.com/file/2023/7/96507_0s.png)
Pthon批量处理将pdb文件生成dssp文件
2021-10-07 13:11:04
python爬虫实现教程转换成 PDF 电子书
2023-08-12 21:51:27
![](https://img.aspxhome.com/file/2023/4/99134_0s.png)
如何利用C#通过sql语句操作Sqlserver数据库教程
2024-01-12 19:24:00
![](https://img.aspxhome.com/file/2023/5/106405_0s.jpg)
浅谈Pycharm最有必要改的几个默认设置项
2021-10-13 05:33:38
![](https://img.aspxhome.com/file/2023/1/95711_0s.jpg)
python实现名片管理系统
2021-04-02 22:21:40
![](https://img.aspxhome.com/file/2023/8/90788_0s.jpg)
使用Python创建websocket服务端并给出不同客户端的请求
2023-08-01 23:29:32
![](https://img.aspxhome.com/file/2023/8/98878_0s.png)