Python 汇总多个Excel表数据

本文使用xlrd模块读取Excel,使用openpyxl模块写入Excel,可将同表头结构的数据汇总至同一Excel文件中。
该小工具应该是网上同类小工具中效率较高的,只需要单次循环即可解决,注释也写得也相对详细,方便阅读理解。

代码如下:

# 第一版:初个版本,日后继续完善表头等内容判断
# coding:utf-8

def SummaryTable():
    import openpyxl
    import xlrd
    import os.path
    import time

    # 开始时间
    time_start = time.time()

    # 创建文件Summary_table.xlsx并保存
    workbook = openpyxl.Workbook('Summary_table.xlsx')
    workbook.save('Summary_table.xlsx')
    # 读取文件Summary_table.xlsx
    workbook = openpyxl.load_workbook('Summary_table.xlsx')
    # 设置写入第0张sheet
    worksheet = workbook.worksheets[0]

    # Excel表路径
    rootdir = "./ExcelFile"
    files = os.listdir(rootdir)
    # 获取文件个数
    num = len(files)

    print('读取数据中...请稍等...')
    for file in files:
        # 迭代文件夹,获取每个文件名称,获取相对路径
        path = './ExcelFile/' + file
        # 通过相对路径读取表格
        sheets = xlrd.open_workbook(path)
        # 读取指定Sheet名称
        # 读取指定Sheet序号
        # 两者二选一
        # sheet = sheets.sheet_by_name('SheetName')
        sheet = sheets.sheet_by_index(3)
        # 获取最大行数
        rows = sheet.nrows
        # 获取最大列数
        cols = sheet.ncols
        # 除去表头,开始汇总的行数
        startrow = 4
        startrow -= 1
        for row in range(startrow, rows):
        	#通过迭代获取每一行内容,并在后面添加该数据所属文件名,方便筛选,数据核查等。
            list = sheet.row_values(row) + [file]
            #将数据添加到前面新建的表格中
            worksheet.append(list)

    print('文件保存中...')
    workbook.save('Summary_table.xlsx')
    print('文件保存完成...保存路径为该程序同目录下')
    time_end = time.time()
    print('文件汇总完成...一共汇总了' + str(num) + '个文件' + '花了' + str(format(time_end - time_start, '0.2f')) + '秒')


SummaryTable()
    原文作者:GexinChen
    原文地址: https://blog.csdn.net/weixin_41604056/article/details/103134645
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞