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: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')
请根据您的具体需求进行调整,例如更改要合并的文件列表、标题行等。 您可以使用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]