öncelikle selamlar, çoğu yazılım geliştiricinin hayatında en az bir kere ihtiyacı olacağı bir şey excel dosyalarını bir yere aktarmak. benim de aynı şekilde excel dosyasını içeri aktarmam gerekti ve bunun için laravel-excel paketini kullandım.
hali hazırda bir laravel projesi kurduğunuzu varsayarak başlıyorum. ilk olarak paketi projemize dahil edelim.
composer require maatwebsite/excel
konsolumuza paketimizi dahil edip yüklenmesini bekleyelim.
paketimiz yüklendikten sonra config/app.php dosyasında provider ve alias alanlarına projemizin bilgilerini tanımlayalım.
providers ve alias bölümü
/* Provides Alanımız */ 'providers' => [ /* * Package Service Providers... */ Maatwebsite\Excel\ExcelServiceProvider::class, ] /* Alias Alanımız */ 'aliases' => [ ... 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ]
son olarak ayarlarmızı da publish ettikten sonra kurulum işlemimiz tamamlanacak.
php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"
evet, kurulumumuz tamamlandı. artık paketimizi kullanmaya başlayabiliriz.
config/excel.php dosyasının oluştuğunu göreceksiniz, burada paket ile ilgili belirli ayarlar bulunmaktadır. ben şuanda ekstra bir ayara ihtiyaç duymadığım için buraya değinmeyeceğim. yazımın sonunda paketin dökümantasyon adresini paylaşacağım. dilerseniz oradan inceleyebilirsiniz.
import işlemi için konsolumu açıp gerekli komutu çalıştırıyorum.
php artisan make:import UsersImport --model=User
yapacağımız örnekte kullanıcıları içeri aktaracağız. User classını kullanarak bir import dosyası oluşturduk.
bu komut app\Imports\UserImport.php adında bir dosya oluşturdu.
bu dosyayı açtığınızda karşınıza gelecek ve ekranda model() methodunun altında yapacağımız işlemleri belirleyeceğiz.
aslında controller da bunu tanımlayıp hangi excel sütununun hangi mysql kolonuna denk geldiğini burada belirliyoruz.
UsersImport.php dosyamızın içerisinde kullanıcı modelini oluşturalım
return new User([ 'name' => $row[0], 'email' => $row[1], 'password' => Hash::make($row[2]), ]);
Burada gördüğünüz $row dizisi bizim birazdan controller üzerinde belirteceğimiz excel dosyasının içerisindeki sütunları ifade eder.
- ilk sütun = kullanıcı adı
- ikinci Sütun = e-posta adresleri
- son olarak ise oradaki text formatında bulunan şifre, ve bunu gördüğünüz üzere laravelde işleyip kullanabiliyorsunuz. excel de 1234 olan şifre değerini burada hashleyip tutabiliyorsunuz
ve son olarak gelelim controller'da bu belirlediğimiz verileri nasıl kullanacağımıza.
öncelikle use ile bu paketi kullanacağımızı belirtelim.
use Maatwebsite\Excel\Facades\Excel;
şimdi ise belirediğimiz excel dosyasını burada işleyelim.
class UsersController extends Controller { public function import() { Excel::import(new UsersImport, ' kullanicilar.xlsx'); return redirect('/')->with('success', 'İçeri aktarma işlemi başarılı!'); } }
içeri aktarma işlemimiz bu kadar basit. örnek olarak excel dosyasının resmini buraya bırakıyorum
dilerseniz paketin orijinal dökümantasyonundan daha spesifik işlemleri öğrenebilir, github üzerinden starlayabilirsiniz :)
dökümantasyon adresi : https://laravel-excel.com/
github adresi : https://github.com/Maatwebsite/Laravel-Excel
iyi çalışmalar !
Yorumlar Henüz yorum yapılmamış
Yeni Yorum