• 【转】python批量快速合并excel文件


    简介

    如果有很多excel文件需要合并到一个Excel文件中,使用复制粘贴来操作是非常痛苦,这时可以使用Python来批量自动操作。

    把需要合并的Excel文件放到同一文件夹下。

    安装需要的库

    python环境Python3

    pip3 install xlrd
    pip3 install xlsxwriter
    代码
    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    # @Author: Aiker Zhao
    # @Date  : 2019/5/4 9:34 AM
    # @File  : megerexcel.py
    # @Desc  : 
    import xlrd
    import xlsxwriter
    import os
    
    path = "E:/python/excel/"
    
    def get_allxls():  # 获取excel文件列表
        all_xls = []
        for f in os.listdir(path):
            f_name = path + f
            all_xls.append(f_name)
        return all_xls
    
    def open_xls(file):  # 打开一个excel
        #file = file.decode("utf-8")
        fh = xlrd.open_workbook(file)
        return fh
    
    def getsheet(fh):  # 获取excel表中的所有sheet
        return fh.sheets()
    
    def getnrows(fh, sheet):  # 获取sheet表中的行数
        table = fh.sheets()[sheet]
        return table.nrows
    
    def getFilect(file, shnum):  # 读取文件内容并返回内容
        fh = open_xls(file)
        table = fh.sheets()[shnum]
        num = table.nrows
        for row in range(1,num):
            rdata = table.row_values(row)
            datavalue.append(rdata)
        return datavalue
    
    def getshnum(fh):  # 获取sheet表的个数
        x = 0
        sh = getsheet(fh)
        for sheet in sh:
            x += 1
        return x
    
    if __name__ == '__main__':
        allxls = get_allxls()  # 定义要合并的excel文件列表
        datavalue = []
        for fl in allxls:  # 存储所有读取的结果
            print(fl)
            fh = open_xls(fl)
            x = getshnum(fh)
            for shnum in range(x):
                print("正在读取文件:" + str(fl) + "的第" + str(shnum) + "个sheet表的内容...")
                rvalue = getFilect(fl, shnum)
        endfile = "E:/python/excel/merge.xls"  # 合并后的文件
        wb1 = xlsxwriter.Workbook(endfile)
    
        ws = wb1.add_worksheet()
        for a in range(len(rvalue)):
            for b in range(len(rvalue[a])):
                c = rvalue[a][b]
                ws.write(a, b, c)
        wb1.close()
        print("excel合并完成")

    运行脚本:

    python3 megerexcel.py
    

    python批量快速合并excel文件

    python批量快速合并excel文件

    from : https://blog.51cto.com/m51cto/2426135

  • 相关阅读:
    Mysql备份恢复
    Mysql事务学习笔记
    MongoDB进阶
    MongoDB入门
    Mysql流程解析
    Mysql Explain学习笔记
    面试题
    聚集索引和非聚集索引
    端口号占用
    classpath: 和classpath*:的区别
  • 原文地址:https://www.cnblogs.com/xuan52rock/p/13572907.html
Copyright © 2020-2023  润新知