- 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: