需求:将表格中某列的数据内容作为拆分依据,把一张表拆分为若干个xlsx文件。
【私信回复:拆表 附赠可以直接使用的程序】
如下表所示,客户类型有A、B、C三种,我们就以A列作为拆分的依据,将这张表拆分为A.XLSX,B.XLSX,C.XLSX三个文件。
下面是代码:
import pandas as pdfrom os import getcwdprint("\n")print("-"*20+"excel工作表拆分工具"+"-"*20)print(" "*55+"written by nicosleong"+"\n")print("请按照操作步骤输入文件名+后缀,sheet表在工作簿中的顺序以及拆分依据。\n")print("程序运行完毕后,拆分的文件将在与本程序同目录中\n")try: workbook_name=input("1.请输入需要拆分的excel文件名称(如:demo.xls或demo.xlsx):") sheet_num=int(input("2.请输入需要拆分的表格在工作簿的第几个sheet里面(从左向右数):1,2,3……:"))-1 print("\n>>>表格载入中……") path = ('%s')%getcwd()+'\\'+workbook_name df=pd.read_excel(path, sheet_name=sheet_num,header=0)except: print("\n>>>没有找到文件……!请重新打开程序")else: try: col_num=input("3.数据载入完毕,请输入拆分依据列的标题,如输入 客户类型:") a=df[col_num] except: print(">>>没有找到你输入的列标题,请检查是否输入正确,并重新启动程序") else: print("\n>>>数据读取中,数据条目越多,导致处理过程越长……") print("\n>>>如遇杀毒软件提示,请允许本程序操作或将本程序添加为信任") print("\n>>>拆分依据列标题为:"+col_num) a=a.drop_duplicates() for i in a: dfc=df[df[col_num]==i] writer = pd.ExcelWriter("%s.xlsx"%(i), engine='xlsxwriter') dfc.to_excel(writer, sheet_name='明细', na_rep=0, index=False) writer.save() print("\n>>>拆分完毕……!")
运行程序: