python根据某一列内容拆分成多个excel
一个excel根据某一列内容分成多个excel
例如有如下文件内容
然后我需要按照城市来切分表格,
也就是将这一张表分成6个excel!
接下来开始为大家展示代码部分!
这部分代码会涉及到两个模块,xlrd和xlwt。这两个模块是需要安装的。所以首先就是安装这两个模块
pip install xlrd
pip install xlwt
这两个模块的作用
xlwt:对xls等excel文件的写入
xlrd:对xls等excel文件的读取
import xlrd
import xlwt
workbook = xlrd.open_workbook(r"C:/Users/Administrator/Desktop/aaa/全国.xlsx")#打开excel
sheet = workbook.sheet_by_index(0)# 通过索引获取xls文件第0个sheet
# 读取列,从0到第2列
rows = [sheet.row_values(row,0,2) for row in range(sheet.nrows)]
city_lists = {}
# 根据第r[n]列数据进行分割
for r in rows:
#因为我们是根据城市来切分,城市在第一列。所以这里是r[0]
if r[0] not in city_lists:
city_lists[r[0]] = []
city_lists[r[0]].append(r)
for (city, lst) in city_lists.items():#这里的city存的是城市
wb = xlwt.Workbook()
#新建sheet
ws = wb.add_sheet(city)
#这里先写入表头
ws.write(0, 0, '城市')
ws.write(0,1,'数量')
row_idx = 1
for new_r in lst:
#逐行写入
col_idx = 0
for v in new_r:
ws.write(row_idx,col_idx,v)
col_idx = col_idx + 1
row_idx = row_idx+1
#保存的文件名为城市,好分辨切分出来的excel属于哪个城市
wb.save('C:/Users/Administrator/Desktop/aaa/'+city+'.xlsx')
运行结果:
打开表格检查:
内容没有问题!完成!!!