使用的前提记得安装python的环境。
import os
import pandas as pddef listdir(path): #传入根目录file_list = []for file in os.listdir(path):file_path = os.path.join(path, file) #获取绝对路径if os.path.isdir(file_path): #如果还是文件夹,就继续迭代本函数listdir(file_path)elif os.path.splitext(file_path)[1] == '.xlsx' or os.path.splitext(file_path)[1] == '.xlsx': #判断文件是否是Excel文件file_list.append(file_path)return file_list #返回Excel文件路径列表if __name__ == '__main__':path="C://Users//86130//Desktop//pyexcel//"file_names=listdir(path)frames = []try:for file_name in file_names:print("---------------BEGAIN---------------\n 正在合并:")ls_data = pd.read_excel(file_name)df = pd.DataFrame(data=ls_data)#print(df)frames.append(df)result = pd.concat(frames, ignore_index=True)# 根据"代码"列进行去重result = result.drop_duplicates(subset=['代码'], keep='first')# 删除空行empty_rows = result[result['单位'].isnull()].indexresult.drop(empty_rows, inplace=True)#规格型号补空result.loc[result['规格'].isnull(), '规格'] = ' 'result.drop('来源', axis=1, inplace=True)#改名result.rename(columns={'名称': '名称'}, inplace=True)#加一列result.insert(result.columns.get_loc("超市名称") + 1, "超市全名", '')# 将"超市全名"列的数据移动到"超市名称"列中result[超市全名'] = result['全名']#补全超市全名result['超市全名'].fillna(result['超市名称'], inplace=True)result.drop('代码', axis=1, inplace=True)#超市全名给超市种类result.insert(0, 超市种类名称', result['超市全名'].str.split('_').str[0])result.drop('全名', axis=1, inplace=True)result.insert(result.columns.get_loc("超市全名") + 1, "超市类别", '')# 交换列的位置result['超市名称'], result['单位'] = result['单位'], result['超市名称']# 交换表头中的列名result.rename(columns={'超市名称': '单位', '单位': '超市'}, inplace=True)#添加列result.insert(result.columns.get_loc("型号") + 1, "超市属性", '')result.insert(result.columns.get_loc("超市名称") + 1, "最低库存", 1)result.insert(result.columns.get_loc("最低库存") + 1, "最高库存", 10)result.drop('默认超市', axis=1, inplace=True)
//修改当前列的数据格式df = pd.read_excel(excel_file, parse_dates=['日期'], date_format="%Y-%m-%d %H:%M:%S")result.to_excel("C://Users//86130//Desktop//pyexcel//mergeS1.xlsx", index=False)print(file_name + "已合并")except Exception as e:print(e)print("写入失败!")#pass