python——合并指定文件夹下的工作簿和按照某一个列拆分工作簿

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)