1. 程式人生 > >python對excel操作加分系統學生加分

python對excel操作加分系統學生加分

#這是一個給學生加分的小程式。需要提前把學生序號、姓名輸入到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即本指令碼儲存檔名。
注意:檔名不要為漢字。