您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python 按照sheet合并多个Excel的示例代码(多个sheet)

51自学网 2021-10-30 22:13:46
  python
这篇教程python 按照sheet合并多个Excel的示例代码(多个sheet)写得很实用,希望能帮到您。

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

现在需要合并成下图:

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

import xlrd,xlsxwriter#待合并excelallxls=["C:/xxx/xxx.xlsx",        "C:/xxx/xxx.xlsx"]#目标excelend_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 rvaluedef 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)#定义一个目标excelendxls=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=-1sheet_index=-1#将列表all_sheet_value的内容写入目标excelfor 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内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python入门课程第四讲之内置数据类型有哪些
Python五子棋小游戏实例分享
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。