Hoşgeldin!

Türkiye'nin En Detaylı Forumu

Hemen Kayıt Ol!

Python ile Excel Verilerini SQL'e Çevirme

Users who viewed this discussion (Total:0)

Aronshire

Administrator
Yönetici
Katılım
24 Tem 2025
Mesajlar
27
Tepkime puanı
1
Kütüphane sistemi tasarlarken tek tek SQL'e eklemektense direkt olarak bir yazılım yapıp SQL'e çevirme işlemi aklıma geldi. Umarım sizin de işinize yarar.

İndirmek İçin

Python:
import pandas as pd

import os

 

excel_file = "ŞİİRLER.xlsx"

sql_file = "ŞİİRLERe.sql"

table_name = "kitaplar"

batch_size = 250

 

df = pd.read_excel(excel_file, dtype=str)

df = df.dropna(how="all")

 

print(f"Excel'den okunan satır sayısı: {df.shape[0]}")

 

with open(sql_file, "w", encoding="utf-8") as f:

    f.write("SET NAMES 'utf8mb4';\n\n")

 

    create_table = f"CREATE TABLE IF NOT EXISTS {table_name} (\n"

    create_table += "    `ID` INT AUTO_INCREMENT PRIMARY KEY,\n"

    for col in df.columns:

        create_table += f"    `{col}` TEXT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci,\n"

 

    create_table += "    `enum_sutun` ENUM('mevcut', 'odunc_alindi') DEFAULT 'mevcut'\n"

    create_table += ") CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\n\n"

    f.write(create_table)

 

    columns_str = ", ".join(f"`{col}`" for col in df.columns) + ", `enum_sutun`"

 

    total_rows = df.shape[0]

    for i in range(0, total_rows, batch_size):

        batch = df.iloc[i:i + batch_size]

        print(f"İşlenen batch: {i + 1} - {i + batch_size}, Satır sayısı: {len(batch)}")

 

        values_list = []

        for _, row in batch.iterrows():

 

            values = "', '".join(str(value).replace("'", "''") for value in row.values)

            values_list.append(f"('{values}', 'mevcut')")

 

        if values_list:

 

            sql_insert = f"INSERT INTO {table_name} ({columns_str}) VALUES\n"

            sql_insert += ",\n".join(values_list) + ";\n"

            f.write(sql_insert)

 

print(f"✅ Excel verileri '{sql_file}' dosyasına başarıyla aktarıldı!")
 
Son düzenleme:
Home Register Log In
Üst