请问怎么用python按条件将工作表拆分为多个工作簿

img

img

用python按条件将一个工作表拆分为多个工作簿时,出现下面的问题,请问是什么原因

img
请问怎么实现保留表头格式,按乡镇拆分工作簿,并按村排序,重新添加序号,个人身份是党员的行填充标红

import xlwings as xw
file_path = 'd:\\python_file\\产品统计表.xlsx'   # 给出来源工作簿的文件路径
sheet_name = '统计表'                           # 给出要拆分的工作表的名称
app = xw.App(visible=False,add_book=False)     # 启动Excel程序
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])   # 将当前行的数据追加到当前行的产品名称对应的列表中
for key,value in data.items():   # 按产品名称遍历分类后的数据
    new_workbook = xw.books.add()     # 新建目标工作簿
    new_worksheet = new_workbook.sheets.add(key)   # 在目标工作簿中新增工作表并命名为当前的产品名称
    new_worksheet['A1'].value = worksheet['A1:H1'].value   # 将要拆分的工作表的列标题复制到新建的工作表中
    new_worksheet['A2'].value = value    # 将当前产品名称下的数据复制到新建的工作表中
    new_workbook.save('{}.xlsx'.format(key))   # 以当前产品名称作为文件名保存目标工作簿
app.quit()   # 退出Excel程序

如果对你有帮助,可以点击我这个回答右上方的【采纳】按钮,给我个采纳吗,谢谢