m0_60664518 2021-08-03 11:54 采纳率: 0%
浏览 376

如何使用python实现合并多个excel中同名的sheet

在工作中遇到,多个excel文件,每个文件均包含不等数量的sheet,同名sheet内的表格结构相同,如:
excel-01:包含202101、202102、202103,三个sheet
excel-02:包含202101、 202103、202104,三个sheet
excel-03:包含 202102 ,一个sheet
等等
目标:将多个excel文件中的所有sheet合并在同一excel文件中,并将同名sheet进行合并
因为完全没有任何相关知识,只能在网站查询成熟方法,找到方法如下,但excel文件中如果存在单个名称的sheet就会报错,请问如何处理?

import os
import pandas as pd
# 列出 D:\1\1\1 下所有文件名
file_name_li = os.listdir(r"D:\1\1\1")
# 定义文件名集合
all_file_name = set()
# 定义数据列表
all_data_li = []
# 遍历出每个文件名
for file_name in file_name_li:
    # 将文件夹绝对路径 与 文件名进行拼接
    file_path_li = os.path.join(r"D:\1\1\1", file_name)
    # 读取 excel 表格数据
    all_data = pd.read_excel(file_path_li, sheet_name=None)
    # 将数据添加到数据列表中
    all_data_li.append(all_data)
    # 将工作表名添加到文件名集合中
    for name in all_data:
      all_file_name.add(name)
# 创建工作簿
writer = pd.ExcelWriter("all_data.xlsx")
# 遍历每个工作表名
for sheet_name in all_file_name:
    data_li = []
    # 遍历数据
    for data in all_data_li:
      # 获取同名数据并添加到data_li中
      n_rows = data_li.append(data[sheet_name])
      # 将同名数据进行拼接
      group_data = pd.concat(data_li)
    # 保存到writer工作簿中,并指定工作表名为sheet_name
    group_data.to_excel(writer, sheet_name=sheet_name)
# 保存工作簿
writer.save()
  • 写回答

1条回答 默认 最新

  • 盐湖城 2021-08-03 11:56
    关注

    我写过一个合并excel的软件脚本,在我主页应该有,同文件夹下所有excel的所有sheet都可以合并

    评论

报告相同问题?

问题事件

  • 修改了问题 8月3日
  • 修改了问题 8月3日
  • 创建了问题 8月3日

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器