用Python的xlwings模块按条件将一个工作表拆分为多个工作簿

按条件将一个工作表拆分为多个工作簿

用Python的xlwings模块按条件将一个工作表拆分为多个工作簿

import xlwings as xw
'''
按条件将一个工作表拆分为多个工作簿
'''
# 给出来源工作簿的文件路径及工作簿名称
file_path = r'E:\pythonExample\01\产品统计表.xlsx'
sheet_name = '统计表'  # 给出要拆分的工作表的名称
app = xw.App(visible=True, add_book=False)
workbook = app.books.open(file_path)
# 获取要拆分的工作表
worksheet = workbook.sheets[sheet_name]
value = worksheet.range('A2').expand('table').value  # 读取要拆分的工作表中的所有数据

# 创建一个空字典用于按产品名称分类存放数据
data = dict()
for i in range(len(value)):
    # 获取当前行的产品名称,作为数据的分类依据
    product_name = value[i][1]
    if product_name not in data:
        # 如果不存在,则创建一个与当前行的产品名称对应的空列表,用于存放当前行的数据
        data[product_name] = []
    # 将当前行的数据追加到当前行的产品名称对应的列表中
    data[product_name].append(value[i])
print(data)
# 按产品名称遍历分类后的数据
for key,value in data.items():
    new_workbook = app.books.add()  # 新建目标工作簿
    # 在目标工作簿中新增工作表,并命名为当前的产品名称
    new_worksheet = new_workbook.sheets.add(key)
    # 将要拆分的工作表的列标题复制到新建的工作表中
    new_worksheet['A1'].value = worksheet['A1:F1'].value
    #将当前产品名称下的数据复制写入到新建的工作表中
    new_worksheet['A2'].value = value
    # 保存目标工作簿,文件名称为当前产品名称
    new_workbook.save('E:\\pythonExample\\01\\拆分后表\\{}.xlsx'.format(key))
app.quit()


  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值