Tutorial Membuat Import & Export Excel di Laravel #4 : Proses Export


Tutorial Membuat Import & Export Excel di Laravel #4 : Proses Export

Tutorial Membuat Import & Export Excel di Laravel #4 : Proses Export - Halo teman-teman semuanya, di artikel sebelumnya kita sudah membahas bagaimana cara membuat import data excel dan memasukkannya ke database di Laravel 6.

Di artikel kali ini kita semua akan belajar bagaimana cara membuat export data dari database ke dalam format excel di Laravel 6.

Langkah 1 - Membuat File Export

Langsung saja kita mulai, silahkan teman-teman jalankan perintah dibawah ini

php artisan make:export UsersExport --model=User

Jika berhasil, teman-teman akan menemukan file baru dengan nama UsersExport.php di dalam folder app/Exports, kurang lebih isi dari UsersExport.php seperti berikut ini :

<?php

namespace App\Exports;

use App\User;
use Maatwebsite\Excel\Concerns\FromCollection;

class UsersExport implements FromCollection
{
    /**
    * @return \Illuminate\Support\Collection
    */
    public function collection()
    {
        return User::all();
    }
}

Langkah 2 - Menambah Fungsi Export di Controller

Selanjutnya, silahkan teman-teman buka controller UsersController.php di dalam folder app/Http/Controllers dan tambahkan kode berikut ini dibawah namespace.

use App\Exports\UsersExport;

Dan tambahkan fungsi dibawah ini tepat dibawah fungsi import

public function export()
{
    return Excel::download(new UsersExport(), 'users.xlsx');
}

Dan jika kita tulis secara lengkap file UsersController.php kurang lebih seperti berikut ini :

<?php

namespace App\Http\Controllers;

use App\Exports\UsersExport;
use App\Imports\UsersImport;
use App\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Storage;
use Maatwebsite\Excel\Facades\Excel;

class UsersController extends Controller
{
    public function index()
    {
        $users = User::latest()->get();
        return view('data_users', compact('users'));
    }

    public function import(Request $request)
    {
        $this->validate($request, [
            'file' => 'required|mimes:csv,xls,xlsx'
        ]);

        $file = $request->file('file');

        // membuat nama file unik
        $nama_file = $file->hashName();

        //temporary file
        $path = $file->storeAs('public/excel/',$nama_file);

        // import data
        $import = Excel::import(new UsersImport(), storage_path('app/public/excel/'.$nama_file));

        //remove from server
        Storage::delete($path);

        if($import) {
            //redirect
            return redirect()->route('users.index')->with(['success' => 'Data Berhasil Diimport!']);
        } else {
            //redirect
            return redirect()->route('users.index')->with(['error' => 'Data Gagal Diimport!']);
        }
    }

    public function export()
    {
        return Excel::download(new UsersExport(), 'users.xlsx');
    }

}

Sekarang silahkan teman-teman cari kode berikut ini di dalam file resources/views/data_users.blade.php

<a href="" class="btn btn-primary btn-md">EXPORT</a>

Dan ubahlah menjadi seperti berikut ini

<a href="{{ route('users.export') }}" class="btn btn-primary btn-md">EXPORT</a>

Langkah 3 - Menambahkan Route

Terakhir kita akan menambahkan sebuah route untuk proses export data excelnya. Tambahkan kode berikut ini di dalam routes/web.php

Route::get('/users/export', 'UsersController@export')->name('users.export');

Sekarang kita bisa mencoba melakukan proses export datanya, silahkan teman-teman klik tombol export dan jika berhasil maka akan ada sebuah download file dengan format excel dan jika dibuka, kurang lebih hasilnya seperti berikut ini


KESIMPULAN

Kita telah belajar bagaimana cara membuat proses export dengan Laravel 6. Jika teman-teman memiliki pertanyaan atau kebingungan saat mencobanya, silahkan bisa berkomentar di bawah ini artikel ini.

Terima Kasih


Fika Ridaul Maulayya
Full-Stack Developer, Content Creator and CO-Founder SantriKoding.com

Suka dengan tulisan di SantriKoding? Kamu bisa memberikan dukungan dengan berdonasi atau bagikan konten ini di sosial media. Terima kasih atas dukungan Anda!

KEBIJAKAN KOMENTAR

Saat memberikan komenatar silahkan memberikan informasi lengkap tentang error, seperti: screenshot, link kode, dll. Baca aturan komentar kami