鱼C论坛

 找回密码
 立即注册
查看: 2166|回复: 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
尝试了很多方法,感觉做法的麻烦,求大神指教。
想知道小甲鱼最近在做啥?请访问 -> 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文件合并到一个新文件中:
import openpyxl

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

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

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

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

# 保存新的合并文件
combined_wb.save('combined.xlsx')
请根据您的具体需求进行调整,例如更改要合并的文件列表、标题行等。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

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

2、使用以下代码进行合并:
import os
import glob
from openpyxl import Workbook, load_workbook

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

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

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

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

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

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

注意:此示例代码仅适用于具有相同列数(9列)和相同列结构的Excel文件。根据需要进行调整。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-10-5 08:20

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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