使用xlwings根据某一字段进行筛选并提取到对应名字的工作表

# coding=utf-8
import xlwings as xw

# open a workbook
app = xw.App(visible = True, add_book = False)
wb = app.books.open(u'D:/文件/小工具/自制/11xlwings将工作簿按字段拆分成工作表/拆分表格示例数据.xlsx')  # 打开原始数据表
sht = wb.sheets[0]  # 指定存放数据的工作表
if sht.api.AutoFilterMode == True:  # 如果已经是筛选模式,则取消筛选
    sht.api.AutoFilterMode = False

qishi = 'A2' # 需要根据其分类的列的第一个数据单元格(表头的下一个单元格)

field_list = list(set(sht.range(qishi).expand(mode='down').value))  # 获取分类列的数据的唯一值

print(field_list)  # 打印获取到的唯一值

for field_name in field_list:  # 对于每一个唯一值新建其名称的工作表、依次从总表中筛选唯一值并复制粘贴
    sht_new = wb.sheets.add(field_name, after='sheet1')  # 添加一个以当前唯一值命名的工作表

    sht.range("A1:E311").api.AutoFilter(1, field_name, True)  # 在总表中开始筛选
    sht.range('A1:E311').api.SpecialCells(12).copy  # 从总表中复制筛选的结果

    sht_new.range('A1').paste(paste = None)  # 粘贴到新建的当前唯一值工作表

sht.api.Application.CutCopyMode = 0
sht.AutoFilterMode = False

wb.save()
wb.close()
app.kill()
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值