【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:这里只打开一个文件作为例子。可以看出我们成功的把数据按照班级进行了划分

原文地址:https://www.cnblogs.com/liupengpengg/p/12361755.html