• 利用xlwings将一个工作表,拆成多个工作簿


    #将一个工作表,拆成多个工作簿
    #导入xlwings
    import xlwings as xw
    #找到要拆的工作簿路径
    file_path = '/Users/hugua/Desktop/python_practise/产品统计表.xlsx'
    #找到工作簿中的工作表名称
    sheet_name = '统计表'
    #打开excel
    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]) #将当前行的数据追加到当前行的产品名称对应的列表中
    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('/Users/hugua/Desktop/python_practise/{}.xlsx'.format(key)) #以当前产品名称作为文件名保存目标工作簿
    #退出excel程序
    app.quit()


    感觉利用pandas应该会有更简单的写法,后面尝试一下再贴出来

  • 相关阅读:
    jquery load加载页面内ajax返回的div不能响应页面js的问题的解决方案
    JQuery跳出each循环的方法(包含数组遍历)
    fpm 配置详解
    curl模拟Http请求
    git 修改commit信息
    git-ssh 配置和使用
    初始化目录,并且添加到远程仓库
    【PHP代码审计】 那些年我们一起挖掘SQL注入
    【PHP代码审计】 那些年我们一起挖掘SQL注入
    【PHP代码审计】 那些年我们一起挖掘SQL注入
  • 原文地址:https://www.cnblogs.com/huguangqin/p/15759626.html
Copyright © 2020-2023  润新知