
Python kullanarak bir Excel Dosyasını bir Veritabanı Tablosuna Nasıl Aktarırsınız
Günümüzün veri odaklı dünyasında, verilerin verimli bir şekilde yönetilmesi ve işlenmesi, herhangi bir kuruluş veya birey için temel görevlerdir. Python, kütüphanelerinin zengin ekosistemiyle, veri manipülasyonu ve yönetimi için pandas kütüphanesi gibi güçlü araçlar sunar. Yaygın bir senaryo, Excel elektronik tablolarından veri çıkarmak veya veritabanında verileri saklamak veya diğer sistemlerle entegrasyon için eklemek gereğidir. Bu öğreticide, Excel sayfa dosyalarından veri okuma ve bir veritabanına yerleştirme işlemini otomatikleştiren bir Python betiği nasıl oluşturulacağını inceleyeceğiz. Bu öğreticinin sonunda, veri taşıma görevlerini verimli bir şekilde yönetmeye hazır olacaksınız. Başlayalım!
Python Kullanarak Bir Excel Dosyasını Veritabanı Tablosuna İçe Aktarma
- IronXL kütüphanesini yükleyerek başlayın.
- Excel dosyanızı IronXL kullanarak belleğe yükleyin.
- Çalışmak istediğiniz belirli elektronik tabloyu yükleyin.
- İçe aktaracağınız kesin veri aralığını seçin.
- Bir SQLite veya MySQL veritabanı bağlantısı gibi bir veritabanı ile bağlantı kurun.
- İçe aktarılan verileri barındırmak için SQLite veritabanınızda yeni bir tablo oluşturun.
- Excel dosyasından seçilen satırları yeni oluşturulan SQLite tablosuna yerleştirin.
- Daha fazla analiz veya işlem için oluşturulan SQLite tablosundan verileri alın ve seçin.
Bu öğretici, Excel dosyalarını işleme etkinliği ile tanınan bir Python kütüphanesi IronXL'yi kullanacağız. IronXL'i betiğimize entegre ederek, veri analiz ve işleme için daha fazla analiz ve işleme için dikişsiz verilerek Excel elektronik tablolarından veri çıkarmayı sağlarız.
IronXL Nedir?
IronXL, Iron Software tarafından geliştirilen Python kütüphanesi olup, Python uygulamalarının içinde doğrudan Excel dosyalarını okuma, oluşturma ve düzenleme için güçlü bir işlevsellik sunar. Özellikle, IronXL, Microsoft Excel kurulumundan bağımsız olması ile öne çıkar, farklı ortamlarda dağıtımı basitleştirir. IronXL ile geliştiriciler, şunlar gibi avantajlardan faydalanır:
Platformlar Arası Destek: Windows, macOS, Linux, Docker, Azure ve AWS platformları üzerinde sorunsuz çalışın; çeşitli geliştirme ayarlarına uyum sağlayabilirsiniz.
Veri İthalat ve İhracat: XLS, XLSX, CSV ve TSV dosyalarından veri ithalatını kolayca yönetin, esnek bir şekilde çalışma sayfalarını bu formatlara ve hatta gelişmiş birlikte çalışabilirlik için JSON'a ihraç edin.
Şifreleme Özellikleri: IronXL'in şifreleme yeteneklerinden yararlanarak, XLSX, XLSM ve XLTX dosyalarını şifrelerle koruma sağlayarak veri güvenliğini sağlayın.
Formüller ve Yeniden Hesaplama: Excel formülleri ile zahmetsizce çalışın. Bir sayfa her düzenlendiğinde otomatik yeniden hesaplama avantajıyla veri manipülasyonu da doğruluk ve güvenirlik garanti edilir.
Hücre Biçimlendirme: Her hücrenin görünümünü yazı tipi stillerini, boyutlarını, arka plan desenlerini, kenarlıklarını ve hizalamalarını ayarlayarak özelleştirin, Excel belgelerinizin görsel sunumunu geliştirin.
Geniş Belge Formatları Yelpazesi: XLS, XLSX, XLST, XLSM, CSV ve TSV gibi çeşitli formatlar için destek ile IronXL, geliştiricilerin veri yönetmesini çeşitli senaryolarda kolaylıkla ve verimlilikle yönetmesini sağlar.
Şimdi, IronXL'i yükleyerek başlayalım.
Adım 1: IronXL Kütüphanesini Yükleyin
En ilk adım IronXL kütüphanesini yüklemektir. Komut isteminde IronXL'i yüklemek için aşağıdaki komutu çalıştırın.
pip install IronXL
Adım 2: Excel Çalışma Kitabını Yükleyin
Bir sonraki adım Excel dosyasını yüklemektir. Bu öğreticinin amacı için aşağıdaki Excel dosyasını kullanacağız.

Aşağıdaki kod mevcut Excel dosyasını bellekte yükleyecektir.
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
Yukarıdaki Python kodu kesiti, IronXL kütüphanesini kullanarak 'sample_excel.xlsx' adlı bir Excel çalışma kitabının yüklenmesini göstermektedir. Öncelikle gerekli Python modülü IronXL'den içe aktarılır. Daha sonra, kütüphane kullanımını doğrulamak için bir lisans anahtarı atanır. Ücretsiz lisans anahtarınızı IronXL web sitesinden alabilirsiniz. Son olarak, belirtilen Excel çalışma kitabını belleğe açmak ve yüklemek için Load yöntemi kullanılır. Bu, içeriğin programatik olarak manipüle edilmesine olanak tanır; örneğin, verileri okuma, hücre değerlerini değiştirme veya biçimlendirme uygulama gibi.
Adım 3: Çalışma Sayfası Seçme
IronXL kullanarak bir Excel çalışma kitabındaki çalışma sayfasını seçmek için, çalışma sayfası indeksini veya adını belirtebilirsiniz.
# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
Bu satır, yüklenen Excel çalışma kitabındaki ilk çalışma sayfasını seçer ve onu worksheet değişkenine atar, kitabın içinde o belirli çalışma sayfasında sonraki işlemlerin gerçekleştirilmesine olanak tanır. Bu, bir Excel sayfasından bir çalışma sayfası değişkenine Excel verilerini yükleyecektir.
Adım 4: Veritabanı Bağlantısını Açın
Bu öğreticide, bir MySQL veritabanı sunucusu yerine SQLite veritabanı kullanıyoruz. Veritabanı işlemlerini başlatmak için, veritabanına bağlantı kurarak başlıyoruz.
import sqlite3
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
Yukarıdaki satır, 'data.db' adlı bir SQLite veritabanına bağlantı kurar. Belirtilen veritabanı mevcut değilse, otomatik olarak oluşturulacaktır. Bu bağlantı, veritabanıyla sonraki etkileşimlere olanak tanır; örneğin, sorgular çalıştırma ve veri manipülasyon işlemleri yapma gibi.
Adım 5: Bir Tablo Oluşturma
Sonraki adım, bir Excel dosyasından veri ithal edeceğimiz veritabanında bir veritabanı tablosu oluşturmaktır. SQLite veritabanında bir tablo oluşturmak için, bağlantı nesnesini kullanarak bir SQL bildirimi yürütebilirsiniz.
# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')
Yukarıdaki kod kesiti, SQLite veritabanı bağlantısı içinde SQL komutlarını yürütmek için bir işaretçi nesnesi başlatır. 'id', 'Ad', 'Soyad', 'Cinsiyet', 'Ülke' ve 'Yaş' sütunlarıyla 'müşteri' adlı bir tablo oluşturur. Tablo, belirtilen sütun veri türlerine uygun olarak zaten mevcut değilse oluşturulur.
Adım 6: Veritabanına Python Kullanarak Veri İçe Aktarma
Artık yeni oluşturulmuş tabloya veri yerleştireceğiz. Bir Excel dosyasını içe aktarıp verilerini SQLite veritabanına yerleştireceğiz.
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()
Yukarıdaki kod, her satır için sütun A'dan F'ye kadar değer çıkarır ve Excel sayfasındaki satırları 2'den 10'a kadar yinelemektedir. Bu değerler, 'müşteri' tablosuna yerleştirilecek verileri temsil eden bir tuple (demet) içinde depolanır. İşaretçi daha sonra values tuple'ını tabloya katarak bir SQL INSERT komutu yürütür. Bu işlem, Excel dosyasından SQLite veritabanına veri ithalatını etkili bir şekilde gerçekleştirmek için her satır için tekrarlanır. Son olarak, conn.commit() işlemi onaylar ve değişikliklerin veritabanında kaydedilip kalıcı olmasını sağlar.
Adım 7: Veritabanından veri okuma
Verilerin doğru bir şekilde yerleştirilip yerleştirilmediğini doğrulamak için, SQLite veritabanında bir SELECT sorgusu kullanarak 'müşteri' tablosundan verileri okuyabilirsiniz. Örneğin:
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()
Yukarıdaki kod, SQLite veritabanındaki 'müşteri' tablosunda bir SELECT sorgusu yürütür ve tüm satırları alır. Alınan satırlar fetchall() yöntemi kullanılarak 'rows' değişkeninde saklanır. Daha sonra, her satır iteratif olarak yazdırılır ve 'müşteri' tablosuna yerleştirilen verileri gösterir. Son olarak, kaynakları serbest bırakmak için close() yöntemi kullanılarak veritabanı bağlantısı kapatılır.

Tam Kod Aşağıdaki Gibidir:
import sqlite3
from ironxl import * # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV
# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"
# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]
# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
# Create a cursor object for database operations
cursor = conn.cursor()
# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
id INTEGER,
FirstName TEXT,
LastName TEXT,
Gender TEXT,
Country TEXT,
Age INTEGER
)
''')
# Clear any existing data from the table
cursor.execute("DELETE FROM customer")
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
# Extracting values from columns A to F in Excel worksheet
values_tuple = (
worksheet[f"A{i}"].StringValue,
worksheet[f"B{i}"].StringValue,
worksheet[f"C{i}"].StringValue,
worksheet[f"D{i}"].StringValue,
worksheet[f"E{i}"].StringValue,
worksheet[f"F{i}"].StringValue
)
# Executing SQL INSERT command
cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)
# Commit data insertion to the database
conn.commit()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")
# Fetch all rows from the result set
rows = cursor.fetchall()
# Print each row to verify inserted data
for row in rows:
print(row)
# Close the database connection to release resources
conn.close()
Sonuç
Sonuç olarak, bu öğretici birlikte Excel verilerini bir veritabanına çıkartmanın ve yerleştirmenin otomatik bir yaklaşımını sergilemiştir. Bu süreç yalnızca veri yönetiminin verimliliğini artırmakla kalmaz, aynı zamanda veri işleme girişimlerinin tam potansiyelini açığa çıkarır. Python ve IronXL'in gücünü kucaklayarak veri akışlarınızı optimize edin ve projelerinizi güvenle ilerletin.

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapılandırılmış, görsel olarak çekici kılavuzlar oluşturmayı seviyor.
İlgili Makaleler


