Her ay onlarca Excel dosyasını açıp, kopyalayıp, tek dosyada birleştirip özet çıkarıyorsanız — bu işi bir daha hiç yapmanıza gerek yok. Python, tekrarlayan Excel işlerini saniyeler içinde bitirir. Bu rehberde birden çok dosyayı birleştirip biçimli bir özet rapor üreteceğiz.
1. Kurulum
pip install pandas openpyxl
pandas veriyi işlemek, openpyxl ise .xlsx dosyalarını okuyup yazmak için kullanılır.
2. Bir Excel dosyasını okuyun
Tek bir dosyayı okumak tek satır. df (DataFrame) artık tablonuzun tamamıdır ve üzerinde her türlü işlemi yapabilirsiniz.
import pandas as pd
df = pd.read_excel("ocak_satis.xlsx")
print(df.head()) # ilk 5 satır
print("Toplam ciro:", df["tutar"].sum())
3. Bir klasördeki tüm dosyaları birleştirin
Asıl güç burada başlıyor. Bir klasördeki bütün Excel dosyalarını okuyup tek tabloda birleştiriyoruz.
import pandas as pd
import glob
parcalar = []
for dosya in glob.glob("aylik_raporlar/*.xlsx"):
tablo = pd.read_excel(dosya)
tablo["kaynak_dosya"] = dosya # hangi dosyadan geldiğini işaretle
parcalar.append(tablo)
butun = pd.concat(parcalar, ignore_index=True)
print("Birleşen satır sayısı:", len(butun))
glob, bir desene uyan dosyaları listeler. aylik_raporlar/*.xlsx ifadesi o klasördeki tüm Excel dosyalarını seçer — 3 dosya da olsa 300 dosya da.
4. Özet çıkarın
Örneğin ürün bazında toplam satışı gruplayıp sıralayalım:
ozet = (butun
.groupby("urun")["tutar"]
.sum()
.sort_values(ascending=False)
.reset_index())
print(ozet.head(10))
5. Biçimli rapor olarak kaydedin
Birden çok tabloyu tek Excel dosyasında ayrı sayfalara yazabilirsiniz. Böylece hem ham veri hem özet aynı dosyada durur.
with pd.ExcelWriter("aylik_ozet.xlsx", engine="openpyxl") as yazici:
butun.to_excel(yazici, sheet_name="Ham Veri", index=False)
ozet.to_excel(yazici, sheet_name="Ozet", index=False)
print("aylik_ozet.xlsx hazır ✔")
Bu scripti bir kez yazın; sonra her ay tek komutla çalıştırın. Elle yarım gün süren iş, birkaç saniyeye iner.
Daha ileri: otomatik çalıştırma
- Scripti Windows Görev Zamanlayıcı ile her ayın 1'inde otomatik çalıştırabilirsiniz.
- Raporu oluşturduktan sonra otomatik e-posta ile ilgili kişilere gönderebilirsiniz.
- Hücre renklendirme, koşullu biçimlendirme ve grafik ekleme de
openpyxlile mümkündür. - Kaynak veriyi bir web sitesinden çekiyorsanız, önce web scraping adımını ekleyebilirsiniz.