找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3295|回复: 0

[求助] 如何使用python实现合并多个excel中同名的sheet?

1

主题

1

帖子

1

积分

贫民

积分
1
yxlee 发表于 2021-8-4 08:33:28 | 显示全部楼层 |阅读模式
2威望
在工作中遇到,多个excel文件,每个文件均包含不等数量的sheet,同名sheet内的表格结构相同,如:
excel-01:包含202101、202102、202103,三个sheet
excel-02:包含202101、202103、202104,三个sheet
excel-03:包含202102 ,一个sheet
等等
目标:将多个excel文件中的所有sheet合并在同一excel文件的多个sheet中,并将同名sheet进行合并
因为完全没有任何相关知识,只能在网站查询成熟方法,找到方法如下,但excel文件中如果存在单个名称的sheet就会报错,请问如何处理?
  1. import os
  2. import pandas as pd
  3. # 列出 D:\1\1\1 下所有文件名
  4. file_name_li = os.listdir(r"D:\1\1\1")
  5. # 定义文件名集合
  6. all_file_name = set()
  7. # 定义数据列表
  8. all_data_li = []
  9. # 遍历出每个文件名
  10. for file_name in file_name_li:
  11.     # 将文件夹绝对路径 与 文件名进行拼接
  12.     file_path_li = os.path.join(r"D:\1\1\1", file_name)
  13.     # 读取 excel 表格数据
  14.     all_data = pd.read_excel(file_path_li, sheet_name=None)
  15.     # 将数据添加到数据列表中
  16.     all_data_li.append(all_data)
  17.     # 将工作表名添加到文件名集合中
  18.     for name in all_data:
  19.       all_file_name.add(name)
  20. # 创建工作簿
  21. writer = pd.ExcelWriter("all_data.xlsx")
  22. # 遍历每个工作表名
  23. for sheet_name in all_file_name:
  24.     data_li = []
  25.     # 遍历数据
  26.     for data in all_data_li:
  27.       # 获取同名数据并添加到data_li中
  28.       n_rows = data_li.append(data[sheet_name])
  29.       # 将同名数据进行拼接
  30.       group_data = pd.concat(data_li)
  31.       # 保存到writer工作簿中,并指定工作表名为sheet_name
  32.       group_data.to_excel(writer, sheet_name=sheet_name)
  33. # 保存工作簿
  34. writer.save()
复制代码


回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表