王大可2000 发表于 2023-4-17 16:09:53

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

要求:提取A,B,C,D,E,F,G,H,I。Excel文件中的第一列合并与新表中,并将各列的名称分别命名为A,B,C,D,E,F,G,H,I
尝试了很多方法,感觉做法的麻烦,求大神指教。{:9_221:}

Threebody1 发表于 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()

# 保存新的合并文件
combined_wb.save('combined.xlsx')
请根据您的具体需求进行调整,例如更改要合并的文件列表、标题行等。

isdkz 发表于 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文件。根据需要进行调整。
页: [1]
查看完整版本: openpyxl之将多个Excel表的内容合并至一个新表