import xlrd,xlwt
file = 'testdata.xlsx'
rb = xlrd.open_workbook(filename = file) # 打开文件
# 获取所有表格名字
sheet1 = rb.sheet_by_index(0) # 通过索引获取表格
# 读取表中的数据
nrow=sheet1.nrows;ncol=sheet1.ncols # 找到行列总数
titles =[]
# 从表格中选择并复制部分数据 写入到新的文件中
rows=[sheet1.row_values(row,0,) for row in range(sheet1.nrows)] # 按行读取表中的所有数据
titles = rows[0] # 把标题行另存到一个list中
del rows[0] # 从数据中删掉标题行
zone_list ={} # 定义一个字典数据,后面按照要筛选的数据类别,生成一个按区划分的字典
for r in rows: # 遍历rows列表
if r[0] not in zone_list: # r[0]是第一列,也就是把这一列数据据做为分类进行拆分
zone_list[r[0]]=[]
zone_list[r[0]].append(r) # 最终的zone_list是不重复的分类列表
for (zone,lst) in zone_list.items(): # 遍历区域列表
wb = xlwt.Workbook() # 创建文件
ws = wb.add_sheet(zone) # 增加sheet
t = 0
for title in titles: # 这个循环用来在sheet中首行写入数据标题行
ws.write(0,t,titles[t])
t+=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
wb.save(zone + '.csv') # 将写入数据的workbook对象保存为文件
print("work done!")