利用python实现多个相同excle表格合成一个

代码如下:(如果文件太多需要等的时间越长)

import os
import xlrd2
import xlsxwriter
import glob

biao_tou = "NULL"
wei_zhi = "NULL"


# 获取要合并的所有exce表格
def get_exce():
    global wei_zhi
    wei_zhi = input("请输入Excel文件所在的目录:")
    all_exce = glob.glob(wei_zhi + "\*.xlsx")
    print("该目录下有" + str(len(all_exce)) + "个excel文件:")
    if (len(all_exce) == 0):
        return 0
    else:
        for i in range(len(all_exce)):
            print(all_exce[i])
        return all_exce


# 打开Exce文件
def open_exce(name):
    fh = xlrd2.open_workbook(name)
    return fh


# 获取exce文件下的所有sheet
def get_sheet(fh):
    sheets = fh.sheets()
    return sheets


# 获取sheet下有多少行数据
def get_sheetrow_num(sheet):
    return sheet.nrows


# 获取sheet下的数据
def get_sheet_data(sheet, row):
    for i in range(row):
        if (i == 0):
            global biao_tou
            biao_tou = sheet.row_values(i)
            continue
        values = sheet.row_values(i)
        all_data1.append(values)

    return all_data1


if __name__ == '__main__':
    all_exce = get_exce()
    # 得到要合并的所有exce表格数据
    if (all_exce == 0):
        print("该目录下无.xlsx文件!请检查您输入的目录是否有误!")
        os.system('pause')
        exit()

    all_data1 = []
    # 用于保存合并的所有行的数据

    # 下面开始文件数据的获取
    for exce in all_exce:
        fh = open_exce(exce)
        # 打开文件
        sheets = get_sheet(fh)
        # 获取文件下的sheet数量

        for sheet in range(len(sheets)):
            row = get_sheetrow_num(sheets[sheet])
            # 获取一个sheet下的所有的数据的行数

            all_data2 = get_sheet_data(sheets[sheet], row)
            # 获取一个sheet下的所有行的数据

    all_data1.insert(0, biao_tou)
    # 表头写入

    # 下面开始文件数据的写入
    new_exce = wei_zhi + "\总数据.xlsx"
    # 新建的exce文件名字

    fh1 = xlsxwriter.Workbook(new_exce)
    # 新建一个exce表

    new_sheet = fh1.add_worksheet()
    # 新建一个sheet表

    for i in range(len(all_data1)):
        for j in range(len(all_data1[i])):
            c = all_data1[i][j]
            new_sheet.write(i, j, c)

    fh1.close()
    # 关闭该exce表

    print("文件合并成功,请查看“" + wei_zhi + "”目录下的总数据.xlsx文件!")

    os.system('pause')
    os.system('pause')

如果导入模块错误

下载一下模块就好
在这里插入图片描述

在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值