鱼C论坛

 找回密码
 立即注册
查看: 1184|回复: 2

关于python 合并带个多个sheet 的excel 表格

[复制链接]
发表于 2021-9-15 23:02:36 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 weiyideid823 于 2021-9-15 23:03 编辑

请教下大神,我在已实现case 1 的情况下,如何改变才能实现case2?

case1 : 实现合并200个excel 表,但是每个excel 表仅含有一个sheet
case2:  实现合并200个excel 表,但是每个excel 表含有5个sheet,且各个excel 表的1-5个sheet 需相应合并,即合并之后的总表依然含5 个sheet

我case1 的代码如下:

  1. import pandas as pd
  2. import os
  3. import time

  4. # 获取当前路径及路径下的所有文件
  5. path = os.getcwd()
  6. files = os.listdir(path)
  7. Output = pd.DataFrame()

  8. # 获取路径下文件格式
  9. for filename in files:
  10.     filetype = filename.split(".")[1]

  11.   
  12.     # 遍历表格格式
  13.     if filetype in ["xlsx","xls","xlsm"]:
  14.         sheetnames = pd.ExcelFile(filename).sheet_names
  15.         for sheetname in sheetnames:
  16.             content = pd.read_excel(filename, sheetname)
  17.             len_Content = content.shape[0]
  18.             Output=Output.append(content)
  19.     elif filetype == "csv":
  20.         content = pd.read_csv(filename)
  21.         len_Content = content.shape[0]
  22.         Output = Output.append(content)
  23. Output.to_excel(path + "\Output.xlsx")
复制代码


小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2021-9-16 10:15:00 | 显示全部楼层

两百个表的 五个对应位置的 sheet 名称都相同吗?

相同的话直接 for 循环遍历 sheet_names 表,内部在来个 for 循环 分别读取 200 个表

第一次循环将表全部读取后,用 pd.concat 函数全部拼接起来即可,

相当于执行五次大循环,大循环内每次小循环读取 200 次表 ,全部读取完后用 pd.concat 拼接

试试看吧~

小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-16 21:24:23 | 显示全部楼层
Twilight6 发表于 2021-9-16 10:15
两百个表的 五个对应位置的 sheet 名称都相同吗?

相同的话直接 for 循环遍历 sheet_names 表,内部在 ...

都相同的
200 个excel 表都包含5个相同sheet 名,然后需要做的是将200个表中相同sheet 名的sheet 合并成一个输出一个总表,总表依然含有5个sheet
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-6-18 11:38

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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