一,源數據的載入
需求: 1. 按照班級篩選
2. 把篩選出來的數據分別保存在一個文件的各個sheet中
二,代碼編寫
1 import pandas as pd 2 import os 3 import time 4 import openpyxl 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 39 #文件保存路徑 40 path = R"C:\\Users\\Administrator\\python處理Excel數據\\20200225" 41 42 if not os.path.exists(path): 43 os.mkdir(path) 44 print("目錄創建成功") 45 else: 46 print("目錄已經存在") 47 # 工作表名字 48 date_rand = time.strftime("%Y-%m-%d", time.localtime()) 49 file_name = path + '\%s.xlsx' % date_rand 50 writer = pd.ExcelWriter(file_name) 51 52 #生成新文件的各個sheet.並添加title 53 sheet1 = pd.DataFrame(class1,columns=["班級","姓名","語文","數學","英語","總分","性別","學號"]) 54 sheet2 = pd.DataFrame(class2,columns=["班級","姓名","語文","數學","英語","總分","性別","學號"]) 55 sheet3 = pd.DataFrame(class3,columns=["班級","姓名","語文","數學","英語","總分","性別","學號"]) 56 sheet4 = pd.DataFrame(class4,columns=["班級","姓名","語文","數學","英語","總分","性別","學號"]) 57 sheet5 = pd.DataFrame(class5,columns=["班級","姓名","語文","數學","英語","總分","性別","學號"]) 58 59 #寫入數據到各個sheet中並指定列行標 60 sheet1.to_excel(writer,"sheet1",startcol=0,index=False) 61 sheet2.to_excel(writer,"sheet2",startcol=0,index=False) 62 sheet3.to_excel(writer,"sheet3",startcol=0,index=False) 63 sheet4.to_excel(writer,"sheet4",startcol=0,index=False) 64 sheet5.to_excel(writer,"sheet5",startcol=0,index=False) 65 66 # 將緩存寫入工作表 67 writer.save() 68 print("數據寫入成功!")
三,顯示結果