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)