python——合并指定文件夹下的工作簿和按照某一个列拆分工作簿
作者:故笺/gujian
链接地址:https://www.cnblogs.com/gujianjian/p/12858578.html
说明:码农不易,请尊重他人劳动成果共创和谐网络环境。本文非常欢迎转载但请备注原作出处,违者必究。
随便写得一个小def,不想写过程了,直接贴代码。
合并
1 def combine_excelfile(path,new_combinefille_path,type):#合并指定文件夹下的所有工作簿,type选定合并为一个表还是多个表,作者:故笺 2 listfile_path = GetTxtName(path) 3 # 3、选择数字文件名的数据,isdigit函数判断是否数字,isalpha判断是否字母或汉字,isalnum判断是否数字和字母或汉字的组合.如果想判断汉字的话。可以使用 4 # zhmodel = re.compile(u'[\u4e00-\u9fa5]'),res = zhmodel.search(driver_number) 5 #listfile_path = [x for x in listfile_path if x.isdigit()] # 列表解析处理 6 if type == 0: 7 file_data = pd.DataFrame() 8 for i in listfile_path: 9 file_path = path + '\\' + i 10 dfdata = pd.read_excel(file_path) 11 file_data = file_data.append(dfdata, ignore_index=True) 12 file_data.to_excel(new_combinefille_path, encoding='utf_8_sig', index=None) 13 print('文件已合并:', new_combinefille_path) 14 elif type == 1: 15 writer = pd.ExcelWriter(new_combinefille_path) 16 for i in listfile_path: 17 file_path = path + '\\' + i 18 name = os.path.splitext(i)[0] 19 dfdata = pd.read_excel(file_path) 20 dfdata.to_excel(writer,sheet_name=name, encoding='utf_8_sig', index=None) 21 writer.save() 22 print('文件已合并:', new_combinefille_path) 23 else: 24 print('请输入type合并类型:0,合并成一张工作表;1,合并成多个sheet')
拆分
1 def split_excelfile(file,appoint_type,save_path): 2 dfdata = pd.read_excel(file) 3 list = dfdata[appoint_type] 4 list = list.drop_duplicates() 5 list = list.values.tolist() 6 print(list) 7 for i in list: 8 df = dfdata[dfdata[appoint_type].isin([i])] 9 save_path_file = save_path + '\\' + str(i) + '.xlsx' 10 print('正在拆分:',save_path_file) 11 df.to_excel(save_path_file, sheet_name=str(i), encoding='utf_8_sig', index=None) 12 print('文件拆分完毕,已保存在:', save_path)