python
April 18, 2020

Python Excel İşlemleri

Python Excel Dosya İşlemleri yazımızda Python’da excel dosyaları üzerinde işlem yapmayı inceleyeceğiz.İlk olarak sistemimize openpyxl modülü nü kurmamız gerekmektedir.Modül kurulumu için işletim siteminin türüne göre komut satırından ;

pip install openpyxl

komutu ile gereken kurulumu tamamlıyoruz. Kullandğığımız Python idesinden projemize modülü dahil edelim;

from openpyxl import *

Dosya Oluşturma ve Kayıt Etme

İlk olarak Excel'de çalışacağımız kitabı tanımlıyoruz.

kitap = Workbook()

Daha sonra Excel dosyamızda sayfa(Worksheet) açmalıyız.

ilk_Sayfam = kitap.active

Excel dosyası oluşturulduktan sonra kayıt edilerek dosya kapatılır.Dosyanın kayıt edileceği dizin belirtilmezse Excel dosyası Python dosyası ile aynı dizine kayıt edilir.
kitap.save("dosya.xlsx")               #kitap.save(dizin//dosya.xlsx)
kitap.close()                          #Kitabı kapatıyoruz.

Sayfa İşlemleri Nasıl Yapılır ?

kitap adında Workbook() açtığımızı varsayıyorum ve yeni bir çalışma sayfası eklemek istiyorum. Unutmamak gerekirki "calismasayfasi1" adında bir sayfa varsa onu silicek ve yeniden aynı isimde sayfa açıcaktır. Dikkatli olmalısınız.

kitap.create_sheet("calismasayfasi1")

Hangi çalışma sayfasında çalıştığımızı görmek istersek ;

kitap.get_active_sheet()

Herhangi bir çalışma sayfasını silmek ister isek;

remove_sheet("calismasayfasi1")

Dosyaya İçerik Nasıl Ekliyebiliriz ?

  • Satır ve Sütun Belirtmeden Veri Girişi;
Ekleme yaparken append metodu kullanılır.Bu metot parametre olarak list,tuple,range veya generator veya dict veri tiplerinden parametre alır.
kitap = Workbook()
sheet = kitap.active
sheet.append(("Persona","Non","Grata"))
sheet.append(["Siber","Yazılım","Topluluk"])

kitap.save("dosya.xlsx")
kitap.close()

Çıktıdan da anlaşılacağı üzere append metodu her tekrarlandığında yeni bir satıra geçmektedir.Eğer ekleme yapmak istemiyorsak o sütunu boş bırakmamız yeterli olucaktır.

  • Hücrelere Belirterek Veri Girişi ;
Python’da istenilen herhangi bir hücreye veri yazmak için çalışma sayfasına ait hücre adı belirtilir.
kitap = Workbook()
ilk_Sayfam = kitap.active
ilk_Sayfam["A2"]="Persona"
ilk_Sayfam["A3"]="Non"
ilk_Sayfam["B5"] ="Grata"
kitap.save("dosya.xlsx")
kitap.close()
İstenilen hücreye veri yazdırmanın bir diğer yolu da hücrenin koordinatlarını belirtmektir.
kitap = Workbook()
ilkSayfam = kitap.active
ilkSayfam.cell(row=3,column=3,value="Persona Non Grata")
kitap.save("dosya.xlsx")
kitap.close() 

Veriye Sahip Excel Dosyasını Açmak ve Düzenlemek

Belirttiğimiz dizinde yada Python projemizin dizininde bulunan Excel dosyasını işlemek istiyorsak;
kitap = load_workbook("dosya.xlsx")
Excel dosyamızı yükledik şimdide içersinde veri değiştirmek nasıl yapılır görelim :)
from  openpyxl import *
kitap = loadworkbook("dosya.xlsx")
ilkSayfam=kitap.createsheet("calismasayfasi1",1)
ilkSayfam.cell(row=5,column=2,value="Persona Non Grata")
kitap.save("dosya.xlsx")
kitap.close()  

Excel Dosyalarımdan Nasıl Veri Okuyabiliriz ?

  • İstenilen Hücreden Veri Okumak
Excel dosyamız içerisinde D2 ve B5 ve D5 hücrelerinde Siber , Yazılım ve Topluluk verileri olsun. Bu verileri okuyup ekrana yazdıralım.
from  openpyxl import *
kitap = load_workbook("dosya.xlsx")
sheet=kitap.active
d2=sheet['D2']
d5=sheet["D5"]
b5=sheet.cell(5,2)

print(d2.value)
print(d5.value)
print(b5.value)
kitap.close()
  • Satır Satır Veri Okumak
Aşağıdaki gibi bir Excel dosyamız olduğunu varsayalım.
from  openpyxl import *
kitap = load_workbook("dosya.xlsx")
sheet=kitap.active
for row in sheet.iter_rows(min_row=1, min_col=1, max_row=4, max_col=2):
    for cell in row:
        print(cell.value ,end=" ")
    print()

kitap.close()
Dosyadaki satırları okuyabilmek için iter_rows() fonksiyonunu kullandık.Bu fonksiyon parametre olarak okunacak minimum ve maksimum satır, sütun değerlerini parametre alır.+ satır ve 2 sütunda veri olduğu için 4 ve 2 değerleri verilmiştir.Eğer belirtilen maksimum değerlerinin kapsadığı sütunlarda veri yok ise None değeri döndürür.
  • Sütun Sütun Veri Okumak
Verileri sütun sütun okumak için iter_cols() fonksiyonu kullanılır.Bu fonksiyonda okunacak satır ve sutun değerlerini minumum ve maksimum olarak parametre alır.
Aynı örnek dosyamız içerisinde yer alan A sütununun değerleri okuyalım;
from  openpyxl import *
kitap = load_workbook("dosya.xlsx")
sheet=kitap.active
for row in sheet.iter_cols(min_row=1, min_col=1, max_row=4, max_col=1):
    for cell in row:
        print(cell.value )
kitap.close()

@ykslkrkci tarafından Persona Non Grata için hazırlanmıştır. Telegram grubumuzakatılın.