zoukankan      html  css  js  c++  java
  • 【Python】处理Excel中数据2 (按照班级筛选数据_生成多个文件)

    一,源数据如下

    需求:1. 按照班级把同一个班级的所有成员筛选出来。

       2. 筛选出来的数据作为单独的Excel表生成保存

    二,代码的编写

     1 # -*- coding:utf-8 -*-
     2 
     3 import openpyxl
     4 
     5 # 1.加载Excel源数据
     6 path = R"C:UsersAdministratorpython处理Excel数据20200113按照班级分离文件.xlsx"
     7 workbook = openpyxl.load_workbook(path)
     8 sheet_names = workbook.sheetnames
     9 sheet1 = workbook[sheet_names[0]]
    10 
    11 # 2. 读取Excel sheet1中的所有数据
    12 allDatas = []
    13 for row in sheet1.rows:
    14     lines = [cell.value for cell in row]
    15     allDatas.append(lines)
    16 
    17 #划分班级
    18 title = []
    19 class1 = []
    20 class2 = []
    21 class3 = []
    22 class4 = []
    23 class5 = []
    24 
    25 for i in allDatas:
    26     if i[0] == "1":
    27         class1.append(i)
    28     elif i[0] == "2":
    29         class2.append(i)
    30     elif i[0] == "3":
    31         class3.append(i)
    32     elif i[0] == "4":
    33         class4.append(i)
    34     elif i[0] == "5":
    35         class5.append(i)
    36     else:
    37         title.append(i)
    38 class1.insert(0,title[0]) # 把每个生成的Excel中插入title
    39 class2.insert(0,title[0])
    40 class3.insert(0,title[0])
    41 class4.insert(0,title[0])
    42 class5.insert(0,title[0])
    43 print(class1)
    44 # 把每个年级的数据分别保存为一个文件
    45 def get_datas(datas,path):
    46     workbook = openpyxl.Workbook()
    47     worksheet = workbook.active
    48     # worksheet.title = "Class1_Datas"
    49     counter = 0
    50     for lines in datas:
    51         #print(lines)
    52         counter = counter + 1
    53         for i in range(len(lines)):
    54             worksheet.cell(counter, i + 1, lines[i])
    55         workbook.save(path)
    56     return workbook
    57 
    58 if __name__ == "__main__":
    59     #设定生成文件的路径并指明文件名
    60     class1_datas = R"C:\Users\Administrator\python处理Excel数据\20200113\各个班级成绩单\class1_datas.xlsx"
    61     class2_datas = R"C:\Users\Administrator\python处理Excel数据\20200113\各个班级成绩单\class2_datas.xlsx"
    62     class3_datas = R"C:\Users\Administrator\python处理Excel数据\20200113\各个班级成绩单\class3_datas.xlsx"
    63     class4_datas = R"C:\Users\Administrator\python处理Excel数据\20200113\各个班级成绩单\class4_datas.xlsx"
    64     class5_datas = R"C:\Users\Administrator\python处理Excel数据\20200113\各个班级成绩单\class5_datas.xlsx"
    65 
    66     #调用方法写入文件
    67     print("班级1成绩单生成成功!",get_datas(class1,class1_datas))
    68     print("班级2成绩单生成成功!",get_datas(class2, class2_datas))
    69     print("班级3成绩单生成成功!", get_datas(class3, class3_datas))
    70     print("班级4成绩单生成成功!",get_datas(class4, class4_datas))
    71     print("班级5成绩单生成成功!",get_datas(class5, class5_datas))

     三,结果生成

    图1:为调用生成的文件数量

    图2:这里只打开一个文件作为例子。可以看出我们成功的把数据按照班级进行了划分

  • 相关阅读:
    web图片100%宽度自适应,高度不塌陷
    基于Kafka+ELK搭建海量日志平台
    一句话撸完重量级锁、自旋锁、轻量级锁、偏向锁、悲观、乐观锁等
    MySQL数据库设计规范
    夺命连环问:一个 TCP 连接可以发多少个 HTTP 请求?
    [Kafka]
    ZooKeeper学习总结 第一篇:ZooKeeper快速入门
    Vue图片浏览组件v-viewer,支持旋转、缩放、翻转等操作
    opencv处理验证码python代码
    mac使用pytesseract
  • 原文地址:https://www.cnblogs.com/liupengpengg/p/12361755.html
Copyright © 2011-2022 走看看