合并两个Excel文件可以通过多种方法实现,以下是使用Python进行合并的几种常见方法:
方法一:使用`pandas`库
`pandas`是一个强大的数据处理库,可以方便地读取和合并Excel文件。
import pandas as pd
读取两个Excel文件
df1 = pd.read_excel('file1.xlsx')
df2 = pd.read_excel('file2.xlsx')
合并两个数据框
df_merged = pd.concat([df1, df2], axis=0, ignore_index=True)
保存合并后的数据框到新的Excel文件
df_merged.to_excel('merged_file.xlsx', index=False)
方法二:使用`openpyxl`库
`openpyxl`专门用于处理`.xlsx`文件,并且可以保留公式(如果数据只模式为`data_only=True`)。
from openpyxl import load_workbook
加载两个Excel文件
wb1 = load_workbook('file1.xlsx', data_only=True)
wb2 = load_workbook('file2.xlsx', data_only=True)
获取工作簿中的所有工作表
ws1 = wb1.active
ws2 = wb2.active
创建一个新的工作簿
wb_merged = Workbook()
ws_merged = wb_merged.active
将第一个工作表的内容复制到新工作簿
for row in ws1.iter_rows(min_row=1, max_row=ws1.max_row, min_col=1, max_col=ws1.max_column, values_only=True):
ws_merged.append(row)
将第二个工作表的内容复制到新工作簿
for row in ws2.iter_rows(min_row=1, max_row=ws2.max_row, min_col=1, max_col=ws2.max_column, values_only=True):
ws_merged.append(row)
保存合并后的工作簿
wb_merged.save('merged_file.xlsx')
方法三:使用`xlrd`和`xlsxwriter`库
这种方法既可以处理`.xls`文件,也可以处理`.xlsx`文件。
import xlrd
import xlsxwriter
打开两个Excel文件
workbook1 = xlrd.open_workbook('file1.xls')
workbook2 = xlrd.open_workbook('file2.xls')
创建一个新的Excel文件
workbook_merged = xlsxwriter.Workbook('merged_file.xlsx')
worksheet_merged = workbook_merged.add_worksheet()
将第一个文件的内容写入新的Excel文件
for row_idx in range(workbook1.nsheets):
worksheet = workbook1.sheet_by_index(row_idx)
for col_idx in range(worksheet.ncols):
worksheet_merged.write(row_idx, col_idx, worksheet.cell_value(row_idx, col_idx))
将第二个文件的内容写入新的Excel文件
for row_idx in range(workbook2.nsheets):
worksheet = workbook2.sheet_by_index(row_idx)
for col_idx in range(worksheet.ncols):
worksheet_merged.write(row_idx, col_idx, worksheet.cell_value(row_idx, col_idx))
关闭并保存新的Excel文件
workbook_merged.close()
以上方法都可以根据你的具体需求进行调整。请选择适合你情况的方法进行操作