# 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()
使用xlwings根据某一字段进行筛选并提取到对应名字的工作表
最新推荐文章于 2026-06-25 12:25:58 发布
3518

被折叠的 条评论
为什么被折叠?



