Python ile "Sınıf bazlı seçilen seçmeli dersleri listelemek"

Kodla Büyü

soncizgi

Aktif Üye
Mesajlar
150
E-okula işlenen seçmeli dersleri sınıf bazlı listelemek için yaptığım bir çalışmayı sizinle paylaşmak istedim. Bana lazım olmuştu, belki birilerinin de işine yarar. Kodun kullanımı ile ilgili anlatımı pdf dosyası olarak mesaja iliştirdim. Faydalı olması dileğiyle.

Pyhton kod
Kod:
# encoding:utf-8
import openpyxl
dosya='seçmeliders.xlsx'
book = openpyxl.load_workbook(dosya)
sheet=book['Sheet1']
toplamSatir=sheet.max_row
#print(toplamSatir)
liste=[]
siniflar=[]
#A Öğr No
#B Ad Soyad
#F Sınıf
#J Seçmeli Ders
for x in range(2,toplamSatir):
    if sheet['F'+str(x)].value not in siniflar:
        siniflar.append(sheet['F'+str(x)].value)
siniflar.sort()
#print(siniflar)
dersler={}
ders=[]
for sinif in siniflar:
    for x in range(2,toplamSatir):
        if sheet['F'+str(x)].value==sinif:
            ders.append(sheet['J'+str(x)].value)
    dersler.update({sinif:ders})
    ders=[]
#print(dersler)
#print(dersler['6. Sınıf / J Şubesi'])
dersy=[]
yenisinif=[]
yeniliste={}
for sinif in siniflar:
    y=sinif.split('/')
    yenisinif.append(y[0][0]+y[1][1])
    for liste in dersler[sinif]:
        if liste not in dersy:
            dersy.append(liste)
    yeniliste.update({sinif:dersy})
    dersy=[]

#print(yeniliste)
syf={}
i=1
for sinif in yenisinif:
    syf[i]=book.create_sheet(sinif)
    i+=1

eskiliste={}
i=1
for sinif in siniflar:
    for a in range(0,len(yeniliste[sinif])):
        bilgi=dersler[sinif].count(yeniliste[sinif][a])
        syf[i].append([yeniliste[sinif][a],bilgi])
        eskiliste[yeniliste[sinif][a]]=bilgi
    #Listeyi büyükten küçüğe sıralayalım
    buyukliste = sorted(eskiliste.items(), key=lambda x: x[1],reverse=True)
    sira=1
    for (key,value) in buyukliste:
        syf[i]['A'+str(sira)]=key
        syf[i]['B'+str(sira)]=value
        sira+=1
    syf[i].column_dimensions['A'].width = 35
    i+=1
    eskiliste={}
    buyukliste={}


#print(yenisinif)
book.save(dosya)
 

Ekli dosyalar

  • 2021-01-21 13_05_34-Window.png
    2021-01-21 13_05_34-Window.png
    7.3 KB · Görüntüleme: 64
  • Seçmeli Dersler.pdf
    181.6 KB · Görüntüleme: 58
Geri
Üst