python合并多个excel并添加一列文件名

临时使用的小工具存档

只合并了excel第一个sheet,稍微改一下就可以分别合并所有sheet了。

import sys
import pandas as pd
from pathlib import Path

#文件路径
file_dir = input('请输入合并Excel文件所在的位置路径:')
path = Path(file_dir)

#找到文件路径下的所有表格名称
name_list = [i.stem for i in path.glob("*.xls*")]

#判断是否存在文件
if not name_list:
    print("文件不存在!\n")
    input("请按回车键退出程序...")
    sys.exit(1)

#提取sheet名
df = pd.ExcelFile(file_dir + '/' + name_list[0] + '.xlsx')
sheet_names = df.sheet_names

#读取所有文件
file_list = []
#for sheet in sheet_names:
file_sheet = [pd.concat([pd.read_excel(i, sheet_name=sheet_names[0])]) for i in path.glob("*.xls*")]
file_list.append(file_sheet)

#保存路径
writer = pd.ExcelWriter(path.joinpath('newExcel.xlsx'))
print(path.joinpath('newExcel.xlsx'))

#写入
j = 0
for file in file_list:
    i = 0
    data_list = []

    for data in file:
        data['责任人'] = name_list[i]
        data_list.append(data)
        i = i + 1

    result = pd.concat(data_list, ignore_index=True)
    result.to_excel(writer, sheet_name=sheet_names[j], index=False)
    j = j + 1
    # print(i)

writer.close()
input("合并完成!\n请按回车键退出程序...")
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值