Veri Sürekliliği - Openpyxl Modülü

Microsoft'un Excel'i en popüler elektronik tablo uygulamasıdır. 25 yıldan fazla bir süredir kullanılmaktadır. Excel'in sonraki sürümleriOffice Open XML (OOXML) dosya biçimi. Bu nedenle, elektronik tablo dosyalarına diğer programlama ortamları aracılığıyla erişmek mümkün olmuştur.

OOXMLECMA standart bir dosya formatıdır. Python'unopenpyxl paketi .xlsx uzantılı Excel dosyalarını okumak / yazmak için işlevsellik sağlar.

Openpyxl paketi, Microsoft Excel terminolojisine benzer bir sınıf terminolojisi kullanır. Bir Excel belgesi çalışma kitabı olarak adlandırılır ve dosya sistemine .xlsx uzantısıyla kaydedilir. Bir çalışma kitabının birden çok çalışma sayfası olabilir. Bir çalışma sayfası, her biri değeri veya formülü depolayabilen büyük bir hücre ızgarası sunar. Izgarayı oluşturan satırlar ve sütunlar numaralandırılmıştır. Sütunlar alfabe, A, B, C,…., Z, AA, AB vb. İle tanımlanır. Satırlar 1'den başlayarak numaralandırılır.

Tipik bir Excel çalışma sayfası aşağıdaki gibi görünür -

Pip yardımcı programı openpyxl paketini kurmak için yeterince iyidir.

pip install openpyxl

Çalışma Kitabı sınıfı, bir boş çalışma sayfası olan boş bir çalışma kitabını temsil eder. Çalışma sayfasına bazı verilerin eklenebilmesi için onu etkinleştirmemiz gerekiyor.

from openpyxl import Workbook
wb=Workbook()
sheet1=wb.active
sheet1.title='StudentList'

Bildiğimiz gibi, çalışma sayfasındaki bir hücre ColumnNameRownumber formatı olarak adlandırılır. Buna göre, sol üst hücre A1'dir. Bu hücreye şöyle bir dize atıyoruz -

sheet1['A1']= 'Student List'

Alternatif olarak, çalışma sayfalarını kullanın cell()bir hücreyi tanımlamak için satır ve sütun numarasını kullanan yöntem. Bir değer atamak için hücre nesnesine değer özelliğini çağırın.

cell1=sheet1.cell(row=1, column=1)
cell1.value='Student List'

Çalışma sayfasını verilerle doldurduktan sonra, çalışma kitabı nesnesinin save () yöntemi çağrılarak çalışma kitabı kaydedilir.

wb.save('Student.xlsx')

Bu çalışma kitabı dosyası, geçerli çalışma dizininde oluşturulur.

Python betiğini takiben, bir çalışma kitabı belgesine bir tuple listesi yazar. Her demet, rulo numarasını, yaşını ve öğrencinin işaretlerini depolar.

from openpyxl import Workbook
wb = Workbook()
sheet1 = wb.active
sheet1.title='Student List'
sheet1.cell(column=1, row=1).value='Student List'
studentlist=[('RollNo','Name', 'age', 'marks'),(1,'Juhi',20,100), 
   (2,'dilip',20, 110) , (3,'jeevan',24,145)]
for col in range(1,5):
   for row in range(1,5):
      sheet1.cell(column=col, row=1+row).value=studentlist[row-1][col-1]
wb.save('students.xlsx')

Student.xlsx çalışma kitabı, geçerli çalışma dizinine kaydedilir. Excel uygulaması kullanılarak açılırsa, aşağıdaki gibi görünür -

Openpyxl modülü şunları sunar: load_workbook() çalışma kitabı belgesindeki verilerin geri okunmasına yardımcı olan işlev.

from openpyxl import load_workbook
wb=load_workbook('students.xlsx')

Artık satır ve sütun numarasıyla belirtilen herhangi bir hücrenin değerine erişebilirsiniz.

cell1=sheet1.cell(row=1, column=1)
print (cell1.value)
Student List

Misal

Aşağıdaki kod, çalışma sayfası verileriyle bir listeyi doldurur.

from openpyxl import load_workbook
wb=load_workbook('students.xlsx')
sheet1 = wb['Student List']
studentlist=[]
for row in range(1,5):
   stud=[]
for col in range(1,5):
   val=sheet1.cell(column=col, row=1+row).value
stud.append(val)
studentlist.append(tuple(stud))
print (studentlist)

Çıktı

[('RollNo', 'Name', 'age', 'marks'), (1, 'Juhi', 20, 100), (2, 'dilip', 20, 110), (3, 'jeevan', 24, 145)]

Excel uygulamasının çok önemli bir özelliği formüldür. Hücreye formül atamak için, onu Excel'in formül sözdizimini içeren bir dizeye atayın. ORTALAMA işlevini yaşlanan c6 hücresine atayın.

sheet1['C6']= 'AVERAGE(C3:C5)'

Openpyxl modülünde Translate_formula()formülü bir aralıkta kopyalamak için işlev. Aşağıdaki program C6'da ORTALAMA işlevini tanımlar ve bunu C7'ye kopyalayarak işaretlerin ortalamasını hesaplar.

from openpyxl import load_workbook
wb=load_workbook('students.xlsx')

sheet1 = wb['Student List']
from openpyxl.formula.translate import Translator#copy formula
sheet1['B6']='Average'
sheet1['C6']='=AVERAGE(C3:C5)'
sheet1['D6'] = Translator('=AVERAGE(C3:C5)', origin="C6").translate_formula("D6")
wb.save('students.xlsx')

Değiştirilen çalışma sayfası şimdi aşağıdaki gibi görünür -