• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    python 按照sheet合并多个Excel的示例代码(多个sheet)

    工作中会遇到这样的需求,有多个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内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

    您可能感兴趣的文章:
    • 使用 Python 合并多个格式一致的 Excel 文件(推荐)
    • 使用python将多个excel文件合并到同一个文件的方法
    • python 实现读取一个excel多个sheet表并合并的方法
    • Python合并多个Excel数据的方法
    • Python将多个excel表格合并为一个表格
    上一篇:python入门课程第四讲之内置数据类型有哪些
    下一篇:Python五子棋小游戏实例分享
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

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