Laravel Excel Dosyasını Adım Adım İçe Aktarma Rehberi

Yazar Bilge Ozan Per
Yayın Tarihi May 2024
Gösterimler 648 Gösterim
Beğeniler 0 Beğeni

Laravel'da Excel Dosyası Nasıl İçe Aktarılır?

Laravel, web uygulama geliştirmeyi basitleştiren güçlü bir PHP çatısıdır. Projeleriniz veri işlemleri içeriyorsa, muhtemelen Excel dosyalarından veri içe aktarma ihtiyacı duyacaksınız. Laravel uygulamanıza Excel dosyalarını içe aktarmak, çeşitli kaynaklardan veri alımıyla uğraşırken sıkça karşılaşılan bir işlemdir.

Bu rehberde, popüler Laravel Excel paketini kullanarak Laravel'de Excel dosyalarını içe aktarma işlemini adım adım anlatacağım.

Laravel'de Excel Dosyası İçe Aktarımı için Ön Koşullar:

Rehbere başlamadan önce aşağıdaki ön koşullara sahip olduğunuzdan emin olun:

  • Çalışan bir Laravel projesi kurulu ve çalışıyor durumda.
  • Laravel'ın Eloquent ORM ve Blade şablonlama motoru hakkında temel bilgi.
  • Sisteminizde Composer kurulu.

Laravel'de Excel Dosyası İçe Aktarma Adımları:

Adım 1: Laravel Excel'i Kurun

Başlamak için Laravel maatwebsite/excel paketini kurmanız gerekecek. Terminalinizi açın ve Laravel projesinin kök dizinine gidin. Ardından aşağıdaki komutu çalıştırın:

composer require maatwebsite/excel

Bu komut ile Laravel Excel paketi ve bağımlılıkları projenize yüklenir.

Adım 2: Paketi Yapılandırın

Kurulumdan sonra, Laravel Excel paketini yapılandırmanız gerekecek. config/app.php dosyasını açın ve aşağıdaki hizmet sağlayıcısını ve aliası sırasıyla hizmet sağlayıcıları ve aliaslar dizilerine ekleyin:

// config/app.php

'providers' => [
    // ...
    Maatwebsite\Excel\ExcelServiceProvider::class,
],

'aliases' => [
    // ...
    'Excel' => Maatwebsite\Excel\Facades\Excel::class,
],

Daha sonra, aşağıdaki komutu çalıştırarak paket yapılandırma dosyasını yayınlayın:

php artisan vendor:publish --provider="Maatwebsite\Excel\ExcelServiceProvider"

Bu komut, yapılandırma ayarlarınızı özelleştirebileceğiniz bir config/excel.php dosyası oluşturacaktır.

Adım 3: Bir Controller Oluşturun

Şimdi, Excel dosyası içe aktarımını yönetecek bir controller oluşturalım. Yeni bir kontrolör oluşturmak için aşağıdaki komutu çalıştırın:

php artisan make:controller ExcelImportController

Bu komut, app/Http/Controllers dizininde ExcelImportController.php adında bir dosya oluşturacaktır.

Adım 4: İçe Aktarma için Logic Tanımlayın

ExcelImportController.php dosyasını açın ve içe aktarma mantığını bir yöntem içinde tanımlayın. Örneğin, import adında bir yöntem oluşturalım:

// app/Http/Controllers/ExcelImportController.php

use Excel;

class ExcelImportController extends Controller
{
    public function import(Request $request)
    {
        // Yüklenen dosyayı doğrulayın
        $request->validate([
            'file' => 'required|mimes:xlsx,xls',
        ]);

        // Yüklenen dosyayı alın
        $file = $request->file('file');

        // Excel dosyasını işleyin
        Excel::import(new YourImportClass, $file);

        return redirect()->back()->with('success', 'Excel dosyası başarıyla içe aktarıldı!');
    }
}

Bu kodda, öncelikle yüklenen dosyanın .xlsx veya .xls türünde olduğunu doğruluyoruz. Doğrulama kurallarını ihtiyaçlarınıza göre ayarlayabilirsiniz. Daha sonra, Excel dosyasını bir sonraki adımda oluşturacağımız bir içe aktarma sınıfı kullanarak işliyoruz.

Adım 5: Bir İçe Aktarma Sınıfı Oluşturun

Excel dosyasından verilerin nasıl içe aktarılacağını belirten bir içe aktarma sınıfı oluşturmanız gerekiyor. Bir içe aktarma sınıfı oluşturmak için aşağıdaki komutu çalıştırın:

php artisan make:import YourImportClass

Bu komut, app/Imports dizininde bir dosya oluşturacaktır. Bu dosyayı açın ve içe aktarma mantığını tanımlayın. İşte nasıl görünebileceğine dair bir örnek:

// app/Imports/YourImportClass.php

namespace App\Imports;

use Maatwebsite\Excel\Concerns\ToModel;

class YourImportClass implements ToModel
{
    public function model(array $row)
    {
        // Excel satır verilerinden bir model
        return new YourModel([
            'column1' => $row[0],
            'column2' => $row[1],
            // Gerektiğinde daha fazla sütun ekleyin
        ]);
    }
}

Bu kodda, model yöntemi Excel dosyasının her satırındaki verilerden bir model oluşturmayı belirtir. Bu yöntemi, Excel dosyanızın yapısına ve Laravel modelinize uygun olarak ayarlamalısınız.

Adım 6: Bir Blade Görünümü Oluşturun

Şimdi, kullanıcıların Excel dosyasını yüklemelerine izin veren bir Blade görünümü oluşturun. İşte basit bir örnek:

<!-- resources/views/excel-import.blade.php -->

@extends('layouts.app')

@section('content')
<div class="container">
    @if(session('success'))
    <div class="alert alert-success">
        {{ session('success') }}
    </div>
    @endif

    <form action="{{ route('import.excel') }}" method="POST" enctype="multipart/form-data">
        @csrf
        <div class="form-group">
            <label for="file">Excel Dosyası Seçin</label>
            <input type="file" name="file" id="file" class="form-control">
        </div>
        <button type="submit" class="btn btn-primary">İçe Aktar</button>
    </form>
</div>
@endsection

Bu Blade görünümü, Excel dosyalarını yüklemek için bir dosya girişi alanı içeren bir form içerir. Ayrıca, içe aktarım başarılı olduğunda bir başarı mesajı gösterir.

Adım 7: Bir Route Oluşturun

web.php dosyanızda (routes dizininde bulunur), Excel içe aktarma görünümü ve içe aktarma işlemi için bir route tanımlayın:

// routes/web.php

Route::get('/import-excel', 'ExcelImportController@index')->name('import.excel');
Route::post('/import-excel', 'ExcelImportController@import');

Adım 8: Excel İçe Aktarmayı Test Edin

Her şey ayarlandıktan sonra, Excel içe aktarma özelliğinizi test edebilirsiniz. Laravel geliştirme sunucunuzu çalıştırarak başlayın:

php artisan serve

Tarayıcınızda Excel içe aktarma sayfasını ziyaret edin, genellikle http://localhost:8000/import-excel. Bir Excel dosyası yükleyin ve her şey doğru yapılandırılmışsa, veriler veritabanınıza içe aktarılmalıdır.

Sonuç:

Bu rehberde, Laravel'de Excel dosyalarını içe aktarma adımlarını açıkladık, bunu Laravel Excel paketi ile yapabilirsiniz. Paketi kurma ve yapılandırma adımlarını, bir controller ve içe aktarma sınıfı oluşturma, dosya yükleme için Blade görünümü oluşturma, route tanımlama ve içe aktarma işlemini test etme gibi adımları öğrendiniz.

Bu özellik, büyük veri kümeleriyle çalışırken veya Excel elektronik tablolarından veri çekmeniz gerektiğinde oldukça yararlı olabilir. Kodu projenizin ihtiyaçlarına uyacak şekilde özelleştirebilir ve güçlü bir Excel içe aktarma özelliğini Laravel uygulamanıza entegre edebilirsiniz.