数据:
代码:
import xlwings as xw
try:
app = xw.App(visible=False, add_book=False)
app2 = xw.App(visible=False, add_book=True)
wb = app.books.open(r'F:\python_抖音课程\01python办公自动化课件\素材\Excel\各区销售情况表.xlsx') # 打开原始数据表
sht = wb.sheets[0] #获取第一个sheet
wb2 = app2.books.add() # 新建工作簿
#获取源工作表最大单元格
cell = sht.used_range.last_cell
max_col = cell.column
max_rows = cell.row
#取得全部原始数据
data_list = sht.range((2,1),(max_rows,max_col)).value
#获取循环的列表,进行去重
chengqu_list = sht.range((2,2),(max_rows,2)).value
chengqu_list = list(dict.fromkeys(chengqu_list))
#循环列表处理数据
for chengqu in chengqu_list:
# 如果是相关数据,则放在新的工作表里
# 在wb2中创建新的工作表
sht_new = wb2.sheets.add(chengqu)
# 复制原始数据第一行到新的sheet
sht_new.range('A1:F1').value = sht.range('A1:F1' ).value
print('新建工作表:'+chengqu)
x = 1
for i in data_list:
if i[1] == chengqu: #i作为列表 i[0]表示第一列
# 将符合条件的数据写入新的工作表
x = x + 1
sht_new.range((x,1),(x,6)).value = i
#保存新工作簿
wb2.save(r'C:\各区销售情况表_分区工作表.xlsx')
print('保存新工作簿成功!')
except Exception as e:
print(e)
finally:
wb.close()
wb2.close()
app.kill()
app2.kill()
按‘城区’字段对数据进行筛选、分类,处理后结果: