Python合并多个Excel表

合并多个Excel表,表中可含有多个Sheet

环境配置

  1. Windows控制台
  2. 输入 pip xlrd pip xlswriter
  3. 检查安装是否成功, 输入 pip list
    **检查是否配置成功**

代码实现

import xlrd  # 读取Excel的包
import xlsxwriter  # 写入的包


#打开一个Excel表
def open_xls(file):
    try:
        fh = xlrd.open_workbook(file)
        return fh
    except Exception as e:
        print("打开出错,错误为:" + e)


#获取所有Sheet表
def getsheet(fh):
    return fh.sheets()


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


#读取文件内容并返回当前sheet行内容
def getFile(file, shnum):
    fh = open_xls(file)
    table = fh.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__':
    allxls = ['C:/Users/Echo/Desktop/Table1.xlsx', 'C:/Users/Echo/Desktop/Table2.xlsx',
              'C:/Users/Echo/Desktop/Table3.xlsx']  # 文件的路径
    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 = 'C:/Users/Echo/Desktop/Table4.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()

执行结果存入新表Table4中。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值