一、Python合并Excel文件多sheet《方法1》
import os 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 # 合并数据,将当前工作表的数据追加到已合并的数据中 merged_data = merged_data.append(df, ignore_index=True) # 将合并后的数据保存为一个新的Excel文件,指定index=False以避免保存索引列 merged_data.to_excel('C:\\Users\\Admin\\Desktop\\合并数据.xlsx', index=False) print('Excel文件合并完成并保存为合并数据.xlsx,包含标识列SourceFile和SheetName')
二、Python合并Excel文件多sheet《方法2》
import pandas as pd import glob import os # 使用glob.glob函数获取指定目录下所有以.xlsx为扩展名的文件路径,并将结果存储在file_paths列表中 file_paths = glob.glob("C:\\Users\\Admin\\Desktop\\数据核对\\*.xlsx") # 创建一个空的DataFrame,用于存储合并后的数据 df = pd.DataFrame() # 循环遍历每个Excel文件,并将其添加到DataFrame中 for file_path in file_paths: # 使用pd.read_excel函数读取Excel文件 xls = pd.ExcelFile(file_path) print(xls) for sheet_name in xls.sheet_names: # 使用pd.read_excel函数读取指定工作表的数据 temp_df = pd.read_excel(file_path, sheet_name=sheet_name) # 使用os.path.basename函数获取文件名(包含扩展名) file_name = os.path.basename(file_path) # 添加一个新的列,用于标识数据来自哪个Excel文件的哪个工作表 temp_df['SourceFile'] = file_name temp_df['SheetName'] = sheet_name # 合并数据,将当前工作表的数据追加到已合并的数据中 df = df.append(temp_df, ignore_index=True) # 使用df.to_excel函数将合并后的数据保存为新的Excel文件,index=False表示不保存行索引 df.to_excel("C:\\Users\\Admin\\Desktop\\合并数据.xlsx", index=False)
标签:文件,sheet,pd,Python,Excel,df,file,path From: https://www.cnblogs.com/lcl-cn/p/17736191.html