鱼C论坛

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

Python 处理Excel多个工作簿合并一个工作表,并且只合并首行

[复制链接]
发表于 2023-11-23 14:46:52 | 显示全部楼层 |阅读模式

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

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

x
Python 处理Excel多个工作表合并一个工作表,从第二行开始合并,并且只保留唯一表头,代码如何写?
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-11-23 14:48:06 | 显示全部楼层
处理Excel多个工作簿合并一个工作表,并且只合并首行的代码可以如下所示:
  1. import pandas as pd
  2. import os
  3. # 指定工作簿所在的文件夹路径
  4. folder_path = 'path_to_folder'
  5. # 获取文件夹中的所有Excel文件
  6. file_list = [file for file in os.listdir(folder_path) if file.endswith('.xlsx')]
  7. # 创建一个空的DataFrame来存储合并后的数据
  8. merged_data = pd.DataFrame()
  9. # 遍历每个Excel文件
  10. for file in file_list:
  11.     # 读取Excel文件中的所有工作表
  12.     sheets = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
  13.    
  14.     # 遍历每个工作表
  15.     for sheet_name, df in sheets.items():
  16.         # 只处理首行
  17.         first_row = df.iloc[0]
  18.         
  19.         # 如果合并后的DataFrame中没有表头,则将首行作为表头
  20.         if merged_data.empty:
  21.             merged_data = pd.DataFrame(columns=first_row.index)
  22.         
  23.         # 将首行数据添加到合并后的DataFrame中
  24.         merged_data = merged_data.append(first_row, ignore_index=True)
  25. # 将合并后的数据写入新的Excel文件
  26. merged_data.to_excel('merged_data.xlsx', index=False)
复制代码

处理Excel多个工作表合并一个工作表,从第二行开始合并,并且只保留唯一表头的代码可以如下所示:
  1. import pandas as pd
  2. import os
  3. # 指定工作簿所在的文件夹路径
  4. folder_path = 'path_to_folder'
  5. # 获取文件夹中的所有Excel文件
  6. file_list = [file for file in os.listdir(folder_path) if file.endswith('.xlsx')]
  7. # 创建一个空的DataFrame来存储合并后的数据
  8. merged_data = pd.DataFrame()
  9. # 遍历每个Excel文件
  10. for file in file_list:
  11.     # 读取Excel文件中的所有工作表
  12.     sheets = pd.read_excel(os.path.join(folder_path, file), sheet_name=None)
  13.    
  14.     # 遍历每个工作表
  15.     for sheet_name, df in sheets.items():
  16.         # 只处理从第二行开始的数据
  17.         data = df.iloc[1:]
  18.         
  19.         # 如果合并后的DataFrame中没有表头,则将第一行作为表头
  20.         if merged_data.empty:
  21.             merged_data = pd.DataFrame(columns=df.columns)
  22.         
  23.         # 将数据添加到合并后的DataFrame中
  24.         merged_data = merged_data.append(data, ignore_index=True)
  25. # 将合并后的数据写入新的Excel文件
  26. merged_data.to_excel('merged_data.xlsx', index=False)
复制代码

请注意,上述代码中的`path_to_folder`应该替换为实际的文件夹路径。此外,代码中使用了pandas库来处理Excel文件,如果尚未安装该库,请使用`pip install pandas`命令进行安装。
以上回复来自 -- ChatGPT(FishC官方接口),如未能正确解答您的问题,请继续追问。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-11-23 16:40:03 | 显示全部楼层
  1. import openpyxl

  2. # 创建一个新的工作簿
  3. merged_workbook = openpyxl.Workbook()
  4. merged_sheet = merged_workbook.active

  5. # 读取要合并的工作簿
  6. workbook_names = ['workbook1.xlsx', 'workbook2.xlsx']

  7. for workbook_name in workbook_names:
  8.     workbook = openpyxl.load_workbook(workbook_name)
  9.     sheet = workbook.active

  10.     # 复制表头
  11.     if merged_sheet.max_row == 0:
  12.         for row in sheet.iter_rows(min_row=1, max_row=1):
  13.             for cell in row:
  14.                 merged_sheet[cell.coordinate] = cell.value

  15.     # 复制数据
  16.     for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row):
  17.         new_row = [cell.value for cell in row]
  18.         merged_sheet.append(new_row)

  19. # 保存合并后的工作表
  20. merged_workbook.save('merged_workbook.xlsx')
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-6-24 08:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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