主页 > 知识库 > python 按照sheet合并多个Excel的示例代码(多个sheet)

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 按照sheet合并多个Excel的示例代码(多个sheet)》,本文关键词  ;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 收缩
    • 微信客服
    • 微信二维码
    • 电话咨询

    • 400-1100-266