python對excel操作加分系統學生加分
阿新 • • 發佈:2018-11-30
#這是一個給學生加分的小程式。需要提前把學生序號、姓名輸入到excel中,儲存為py.xls #每次可以輸入多個同學姓名,自動在表格內加1分。 import xlrd import xlwt from xlutils.copy import copy # as cp import time workbook = xlrd.open_workbook(r'D:\py.xls') copy = copy(workbook) #複製 #------------------------------------ c=1 #班級臨時引數 while c>0: ban = input ('請輸入班級:')#python3 裡 input() 預設接收到的是 str 型別。 if ban.isdigit(): # 判斷輸入內容是不是數字 ban = int(ban) #將b轉換為一個整數 if ban == 3: sheet1 = workbook.sheet_by_name('Sheet1') sheet1cooy = copy.get_sheet(0) break elif ban == 4: sheet1 = workbook.sheet_by_name('Sheet2') sheet1cooy = copy.get_sheet(1) #選擇班級,複製sheet2 break else: print('請重新輸入班級:3或4') continue else: print('請重新輸入班級:3或4') continue #-------------------------------------------------- #print (sheet1.cell_value(a,1),sheet1.cell_value(4,1)) #可連續輸出 row_count=sheet1.nrows #獲取表格有效總行數 col_count= sheet1.ncols #獲取表格有效總列數 m = [col_count for i in range(500)] #臨時陣列,用來統計那個學號加過幾次分 print ('----------------------------') b=1 #臨時b while b>0: list2 = input('請輸入學號,用空格分隔多個數據:') #生成一個記錄優秀學號的陣列num num = [n for n in list2.split()] d=1 #臨時d,提取輸入的學號中的位置用 while d>0: if d>len(num): #當i太長後退出 break if num[d-1].isdigit(): # 判斷輸入內容是不是數字 num[d-1] = int(num[d-1]) # print(num[d-1]) for i in range(1,row_count): #i從1到最後一行行數遍歷 cell0 = sheet1.cell_value(i,0) #獲取第一列每一個數據 cell1 = sheet1.cell_value(i,1) if num[d-1] == cell0: #如果輸入的數字和第一列某個單元格的數字相同,則 print (cell1) #輸出第二列中相應的姓名 m[num[d-1]]=m[num[d-1]]+1 print( m[num[d-1]]) sheet1cooy.write(i, m[num[d-1]]-1, 1) #sheet1cooy.write(0, m[num[d-1]]-1, time.strftime('%Y-%m-%d %H:%M:%S',time.localtime(time.time()))) sheet1cooy.write(0, m[num[d-1]]-1, time.strftime('%m-%d',time.localtime(time.time()))) d=d+1 copy.save(r'D:\py.xls') print ('資料已儲存!') break
生成exe檔案:
需要pyinstaller
開啟命令提示行,輸入 pip install pyinstaller 等待安裝成功。
進入程式碼所在目錄
輸入 d:
輸入 D:\Program Files\Python37\my code
輸入 pyinstaller -F test.py
上面的test.py即本指令碼儲存檔名。
注意:檔名不要為漢字。