Python实践4:基于xlwings按字段对Excel中的数据做筛选和分类

数据:

Python实践代码测试数据-各区销售情况表

代码:

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()

按‘城区’字段对数据进行筛选、分类,处理后结果:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值