Cara Import Excel di Laravel

Mengimpor data dari file Excel ke aplikasi Laravel adalah tugas umum yang sering dibutuhkan dalam pengembangan web. Dalam artikel ini, kita akan menjelaskan langkah-langkah cara mengimpor data dari file Excel ke dalam proyek Laravel menggunakan library Laravel Excel.

1. Persiapan Awal

Pastikan Laravel telah diinstal dan konfigurasi proyek Laravel sudah dilakukan. Jika belum, ikuti langkah-langkah instalasi Laravel di dokumentasi resmi Laravel.

2. Instal Library Laravel Excel

Jalankan perintah berikut di terminal untuk menginstal library Laravel Excel:

composer require maatwebsite/excel

Setelah selesai, tambahkan service provider dan facade pada file config/app.php:

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

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

3. Membuat Controller

Buat controller baru untuk menangani logika impor Excel:

php artisan make:controller ImportController

4. Menulis Logika Import di Controller

Buka file controller yang telah dibuat (ImportController.php) dan tambahkan metode untuk menangani impor Excel. Berikut adalah contoh sederhana:

use Illuminate\Http\Request;
use Maatwebsite\Excel\Facades\Excel;
use App\Imports\DataImport;

class ImportController extends Controller
{
    public function import(Request $request)
    {
        $file = $request->file('excel_file');

        Excel::import(new DataImport, $file);

        return redirect()->back()->with('success', 'Data berhasil diimpor.');
    }
}

5. Membuat Import Class

Buat class import baru yang akan menangani pemrosesan data dari file Excel. Gunakan perintah Artisan untuk membuat class import:

php artisan make:import DataImport

Buka file import yang telah dibuat (DataImport.php) dan konfigurasikan class tersebut sesuai dengan kebutuhan. Contoh sederhana:

use Maatwebsite\Excel\Concerns\ToModel;
use Maatwebsite\Excel\Concerns\WithHeadingRow;
use App\Models\Data;

class DataImport implements ToModel, WithHeadingRow
{
    public function model(array $row)
    {
        return new Data([
            'field1' => $row['column1'],
            'field2' => $row['column2'],
            // ...
        ]);
    }
}

6. Membuat Route

Tambahkan route untuk memanggil metode impor di dalam file routes/web.php:

Route::post('/import', 'ImportController@import')->name('import');

7. Membuat Form HTML

Tambahkan form HTML di halaman yang sesuai untuk mengunggah file Excel:

<form action="{{ route('import') }}" method="post" enctype="multipart/form-data">
    @csrf
    <input type="file" name="excel_file" accept=".xlsx, .xls">
    <button type="submit">Import Data</button>
</form>

8. Uji Coba

Jalankan server pengembangan Laravel:

php artisan serve

Akses aplikasi Laravel pada browser dan coba unggah file Excel melalui formulir. Data dari file Excel akan diimpor ke dalam aplikasi.

Kesimpulan

Dengan menggunakan library Laravel Excel, mengimpor data dari file Excel menjadi tugas yang lebih mudah diimplementasikan dalam proyek Laravel. Pastikan untuk menyesuaikan logika impor dan konfigurasi sesuai dengan kebutuhan aplikasi Anda. Dengan langkah-langkah di atas, Anda dapat dengan mudah mengintegrasikan fungsionalitas impor Excel ke dalam proyek Laravel Anda.