- Katılım
- 24 Tem 2025
- Mesajlar
- 28
- 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 Link
İndirmek İçin Link
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: