- 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
İndirmek İçin
Ziyaretçiler için gizlenmiş link,görmek için
Giriş yap veya üye ol.
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: