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()
  • 7
    点赞
  • 55
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值