【Python】處理Excel中數據2 (按照班級篩選數據_生成多個文件)


一,源數據如下

需求:1. 按照班級把同一個班級的所有成員篩選出來。

   2. 篩選出來的數據作為單獨的Excel表生成保存

二,代碼的編寫

 1 # -*- coding:utf-8 -*-
 2 
 3 import openpyxl
 4 
 5 # 1.加載Excel源數據
 6 path = R"C:\Users\Administrator\python處理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:這里只打開一個文件作為例子。可以看出我們成功的把數據按照班級進行了划分


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM