前言:对于Excel表格中数据量众多,若想要将Excel表按列分割成为各个独立的子表需要大量的时间,但若通过Python程序实现,将会节省大量的时间,提高工作效率,而这也是Python的魅力所在,本篇文章引用网上的一个案例为例子进行操作介绍,同时也欢迎大家一起交流,共同进步。
通常在从事业务工作的同学们经常会遇到这样的一个问题,就是需要把一个汇总的excel表按列分成若干个新的Excel表,即:
?或者:
?需要针对不同供应商拆分成独立的子表格进行商品动销分析。
下图为拆分后的结果,每个供应商会是一个单独的Excel文件产出:
拆分后子表内容是单个独立供应商所有的商品动销数据:
?
(以上表格数据来源于网上?)
Python代码的实现
一、针对唯一sheet的Excel表拆分
#步骤一:读取表格
import pandas as pd
dirPath = input('请输入源文件地址:')
path = dirPath + 'xxx指标体系.xlsx'
orgName = pd.read_excel(path)
org_list = list(orgName['xx公司'].drop_duplicates())
print(org_list)
#步骤二:完成表格的拆分
for i in org_list:
writer = pd.ExcelWriter(dirPath+i+'指标体系.xlsx')
tempdata = orgName[orgName['xx公司']==i]
tempdata.to_excel(writer,index = False)
writer.save()
writer.close()
二、针对多个sheet的Excel表拆分
#步骤一:读取表格
import pandas as pd
dirPath = input('请输入源文件地址:')
path = dirPath + 'xx指标体系.xlsx'
orgName = pd.read_excel(path)
org_list = list(orgName['xx公司'].drop_duplicates()) #去掉重复值
print(org_list)
#步骤二:获取excel_sheet名称并完成表格的拆分
d_read = pd.read_excel(path,None)
names = list(d_read.keys())
print(names)
for i in org_list:
writer = pd.ExcelWriter(dirPath+i+'xx指标体系周报%s.xlsx')
for name in names:
print(name)
tempsheet = pd.read_excel(path,sheet_name=name)
tempdata = tempsheet[tempsheet['xx公司']==i]
tempdata.to_excel(writer, sheet_name = name,index = False)
writer.save()
writer.close()
让我们一起,为梦想窒息。
|