EXCEL处理------合并多个excel内多个sheet

留作备用

结合别人的方法,直接可以使用

工作需要,合并多个excel内的多个sheet,并增加新的列

# coding = UTF-8
import os

import xlwt
from xlrd import open_workbook, xldate_as_datetime


def getdatafromtable(file_name):
    table = open_workbook(file_name)  
    get_sheets = table.sheet_names()  # 得到excel的全部sheet页的名称
    infos = []
    for i in get_sheets:
        get_each_sheet = table.sheet_by_name(i)  # 每个sheet名称
        count_rows = get_each_sheet.nrows  # 当前sheet总行数
        for j in range(count_rows):
            # 返回该行数据列表
            col_values = get_each_sheet.row_values(j, start_colx=0, end_colx=None)

            # 我自己额外加的处理,不需要直接注释
            # try:
            #     if "2021" in col_values[0]:
            #         col_values[0] = col_values[0].replace(".", "/")
            # except:
            #     pass
            # try:
            #     时间格式处理,读取excel后变为  数字.0  的处理
            #     col_values[0] = xldate_as_datetime(col_values[0], 0).strftime('20%y/%m/%d')
            # except:
            #     pass
            # # 插入新列,增加信息
            # col_values.insert(0, get_each_sheet.name)
            # col_values.insert(0, file_name.replace("需要替换的信息", ""))

            # 多个表格的信息合并到一个list
            infos.append(col_values)

    return infos

#  写入新文件
def data_write(file_path, datas):
    f = xlwt.Workbook()
    sheet1 = f.add_sheet(u'汇总', cell_overwrite_ok=True)  # 创建sheet
    i = 0
    for data in datas:
        for j in range(len(data)):
            sheet1.write(i, j, data[j])
        i = i + 1
    f.save(file_path)  # 保存文件

# 遍历文件夹内的所有文件
for root, dirs, files in os.walk("文件夹路径"):
    data = []
    for file in files:
        infos = getdatafromtable(root + file)
        for info in infos:
            data.append(info)
    data_write("汇总.xlsx", data)
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

粘人的小妖精呀

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值