Python合并多个Excel工作簿

Posted medik

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python合并多个Excel工作簿相关的知识,希望对你有一定的参考价值。

# -*- coding: utf-8 -*-

#导入需要使用的包
import xlrd  #读取Excel文件的包
import xlsxwriter   #将文件写入Excel的包

#打开一个excel文件
def open_xls(file):
    f = xlrd.open_workbook(file)
    return f

#获取excel中所有的sheet表
def getsheet(f):
    return f.sheets()


#获取sheet表的行数
def get_Allrows(f,sheet):
    table=f.sheets()[sheet]
    return table.nrows

#读取文件内容并返回行内容
def getFile(file,shnum):
    f=open_xls(file)
    table=f.sheets()[shnum]
    num=table.nrows
    for row in range(num):
        rdata=table.row_values(row)
        datavalue.append(rdata)
    return datavalue

#获取sheet表的个数
def getshnum(f):
    x=0
    sh=getsheet(f)
    for sheet in sh:
        x+=1
    return x

#函数入口
if __name__==‘__main__‘:
    #定义要合并的excel文件列表
    allxls=[‘d:/123.xls‘,‘d:/333.xls‘] #列表中的为要读取文件的路径
    #存储所有读取的结果
    datavalue=[]
    for fl in allxls:
        f=open_xls(fl)
        x=getshnum(f)
        for shnum in range(x):
            print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个sheet表的内容...")
            rvalue=getFile(fl,shnum)
    #定义最终合并后生成的新文件
    endfile=‘d:/excel3.xlsx‘
    wb=xlsxwriter.Workbook(endfile)
    #创建一个sheet工作对象
    ws=wb.add_worksheet()
    for a in range(len(rvalue)):
        for b in range(len(rvalue[a])):
            c=rvalue[a][b]
            ws.write(a,b,c)
    wb.close()

    print("文件合并完成")

  

以上是关于Python合并多个Excel工作簿的主要内容,如果未能解决你的问题,请参考以下文章

Excel多个文件合并到一个工作簿里

【OFFICE 365】Power Query 多工作簿合并

Excel合并多个工作簿和拆分多个工作簿

用VBA代码打开其他excel工作簿(有打开密码的)???

Power Query 同一文件夹多工作簿合并

怎么把多个excel工作簿里面的相同名字的工作表的内容合并到一起