鱼C论坛

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

openpyxl之将多个Excel表的内容合并至一个新表

[复制链接]
发表于 2023-4-17 16:09:53 | 显示全部楼层 |阅读模式

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

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

x
要求:提取A,B,C,D,E,F,G,H,I。Excel文件中的第一列合并与新表中,并将各列的名称分别命名为A,B,C,D,E,F,G,H,I
尝试了很多方法,感觉做法的麻烦,求大神指教。
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2023-4-17 16:12:49 | 显示全部楼层
本帖最后由 Threebody1 于 2023-4-17 16:14 编辑

以下是基本思路:

  • 创建一个新的工作簿,并在该工作簿中创建一个新的工作表。
  • 循环遍历要合并的Excel文件,对于每个文件,打开工作表。
  • 对于每个工作表中的行,提取A,B,C,D,E,F,G,H,I列的值,并将它们添加到新的工作表中的一行中。
  • 在新的工作表第一行中添加标题行,并命名为A,B,C,D,E,F,G,H,I。

下面是一个简单的示例代码,用于将名为“file1.xlsx”和“file2.xlsx”的两个Excel文件合并到一个新文件中:
  1. import openpyxl

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

  5. # 设置标题行
  6. combined_ws.append(['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I'])

  7. # 要合并的 Excel 文件名列表
  8. file_list = ['file1.xlsx', 'file2.xlsx']

  9. for filename in file_list:
  10.     # 打开要合并的Excel文件
  11.     wb = openpyxl.load_workbook(filename)
  12.     ws = wb.active
  13.    
  14.     for row in ws.iter_rows(min_row=2, values_only=True):
  15.         # 获取 A 到 I 列的数据
  16.         a, b, c, d, e, f, g, h, i = row[:9]
  17.         
  18.         # 添加数据到新的工作表
  19.         combined_ws.append([a, b, c, d, e, f, g, h, i])

  20. # 保存新的合并文件
  21. combined_wb.save('combined.xlsx')
复制代码

请根据您的具体需求进行调整,例如更改要合并的文件列表、标题行等。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-4-17 16:21:44 | 显示全部楼层
您可以使用openpyxl库轻松地将多个Excel文件合并到一个新的工作簿中。以下是一个示例,说明如何合并多个Excel文件中的数据:

1、首先,确保已经安装了openpyxl库。如果尚未安装,请运行以下命令进行安装:

  1. pip install openpyxl
复制代码


2、使用以下代码进行合并:

  1. import os
  2. import glob
  3. from openpyxl import Workbook, load_workbook

  4. # 创建一个新的工作簿
  5. merged_wb = Workbook()
  6. merged_ws = merged_wb.active

  7. # 设置列名
  8. column_names = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I']
  9. for index, column_name in enumerate(column_names, start=1):
  10.     merged_ws.cell(row=1, column=index, value=column_name)

  11. # 获取所有Excel文件
  12. excel_files = glob.glob("*.xlsx")

  13. # 遍历所有Excel文件并合并数据
  14. for file in excel_files:
  15.     wb = load_workbook(file)
  16.     ws = wb.active

  17.     # 从第2行开始追加数据
  18.     for row in ws.iter_rows(min_row=2, values_only=True):
  19.         merged_ws.append(row)

  20. # 保存合并后的文件
  21. merged_wb.save("merged.xlsx")
复制代码

将此代码保存到一个Python文件(例如merge_excel.py),然后将其与要合并的Excel文件放在同一个文件夹中。运行脚本后,您将得到一个名为merged.xlsx的新文件,其中包含所有源Excel文件中的数据,各列的名称分别命名为A, B, C, D, E, F, G, H, I。

注意:此示例代码仅适用于具有相同列数(9列)和相同列结构的Excel文件。根据需要进行调整。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-4-22 13:23

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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