合并Excel报表通常可以通过以下几种方法实现:
1. 使用`pandas`库:
import pandas as pd
指定包含Excel文件的文件夹路径
folder_path = 'C:\\Users\\Admin\\Desktop\\数据核对'
获取文件夹中的所有Excel文件
excel_files = [file for file in os.listdir(folder_path) if file.endswith((' .xls', ' .xlsx '))]
创建一个空的DataFrame来存储合并后的数据
merged_data = pd.DataFrame()
遍历所有Excel文件
for file in excel_files:
file_path = os.path.join(folder_path, file)
读取Excel文件,获取所有工作表
xls = pd.ExcelFile(file_path)
遍历每个工作表并合并它们
for sheet_name in xls.sheet_names:
df = pd.read_excel(file_path, sheet_name=sheet_name)
添加一个新的列,用于标识数据来自哪个Excel文件的哪个工作表
df['SourceFile'] = file
df['SheetName'] = sheet_name
将当前工作表的数据添加到合并后的DataFrame中
merged_data = pd.concat([merged_data, df], ignore_index=True)
将合并后的数据保存到新的Excel文件中
merged_data.to_excel('merged_report.xlsx', index=False)
2. 使用`XlsxWriter`库:
import xlsxwriter
import pandas as pd
指定包含Excel文件的文件夹路径
folder_path = 'C:\\Users\\Admin\\Desktop\\数据核对'
获取文件夹中的所有Excel文件
excel_files = [file for file in os.listdir(folder_path) if file.endswith((' .xls', ' .xlsx '))]
创建一个新的Excel文件
workbook = xlsxwriter.Workbook('merged_report.xlsx')
worksheet = workbook.add_worksheet()
遍历所有Excel文件
for file in excel_files:
file_path = os.path.join(folder_path, file)
读取Excel文件,获取所有工作表
xls = pd.ExcelFile(file_path)
遍历每个工作表并合并它们
for sheet_name in xls.sheet_names:
df = pd.read_excel(file_path, sheet_name=sheet_name)
将当前工作表的数据写入新的Excel文件
for r_idx, row in df.iterrows():
for c_idx, value in enumerate(row):
worksheet.write(r_idx, c_idx, value)
关闭工作簿
workbook.close()
3. 使用`Spire.XLS`库:
from spire.xls import *
创建一个列表,并将需要合并的Excel文件放入其中
files = ['F:\\成绩表.xlsx', '分析.xlsx', 'C:\\Users\\Administrator\\Desktop\\总结.xlsx']
创建一个新工作簿
newbook = Workbook()
删除其中的默认工作表
newbook.Worksheets.Clear()
创建一个临时工作簿
tempbook = Workbook()
遍历列表中的文件路径
for file in files:
将列表中的文件加载到临时工作簿中
tempbook.LoadFromFile(file)
遍历临时工作簿中的所有工作表
for sheet in tempbook.Worksheets:
将工作表添加到新的Excel文件中
newbook.Worksheets.AddCopy(sheet)
保存合并后的Excel文件
newbook.SaveToFile('merged_report.xlsx')
请根据您的具体需求选择合适的方法,并确保已安装相应的Python库。