Laravel Impor Ekspor file Excel

Untuk aplikasi web, mengimpor data lembar Excel ke database kami dan mengekspor data dari database ke lembar Excel, adalah fitur penting. Karena fitur ini, kita dapat dengan mudah melakukan impor/ekspor data secara batch oleh aplikasi web. Sulit di Kerangka lain tetapi paling mudah di laravel 8. Ini memberikan paket Maatwebsite/excel untuk mengimpor/mengekspor data dengan mudah. Dalam artikel ini, kita belajar tentang, bagaimana data diekspor dan diimpor.

Fitur:

  • Secara efektif mengirimkan bermacam-macam ke Excel.
  • Kirim pertanyaan dengan penyambungan terprogram untuk eksekusi yang lebih baik.
  • Line mengirimkan untuk eksekusi yang lebih baik.
  • Secara efektif mengirimkan perspektif Blade ke Excel.
  • Efektif impor ke akumulasi.
  • Teliti catatan Excel berkeping-keping.
  • Tangani penyematan impor dalam rumpun.

Langkah-langkah untuk laravel Impor Ekspor data excel: Kami ingin mengikuti beberapa langkah untuk mengimpor dan mengekspor data dengan mudah. Ada 9 langkah mudah untuk diikuti.

  1. Instal proyek laravel baru
  2. Konfigurasikan detail dan model Database
  3. Instal maatwebsite/paket excel
  4. Buat Rute
  5. Buat kelas impor untuk mengimpor data
  6. Buat kelas ekspor untuk data ekspor
  7. Buat pengontrol
  8. Buat bilah / lihat file
  9. Jalankan proyek laravel

1. Instal proyek laravel baru: Pada langkah pertama, buat proyek laravel baru bernama laravel-excel. Gunakan perintah di bawah ini untuk membuat proyek laravel baru.

composer create-project laravel/laravel excel

2. Konfigurasikan detail Database dan buat model: Pada langkah kedua, atur konfigurasi database di file .env di laravel 8.

PHP

DB_CONNECTION=mysql

DB_HOST=127.0.0.1 

DB_PORT=8258

DB_DATABASE=laravel

DB_USERNAME=localhost 

DB_PASSWORD=

Membuat model: Kemudian buat model baru bernama User model untuk terhubung dengan tabel user di database. Di pengguna, tabel berisi berbagai bidang seperti ID, nama, telepon, dan email.

3. Instal paket maatwebsite/excel: Sekarang, dengan menggunakan composer, kita menginstal nama paket maatwebsite/excel untuk mengekspor dan mengimpor data dengan menggunakan composer

composer require maatwebsite/excel 

Setelah menginstal paket, kami ingin mendaftarkan layanan plugin di penyedia dan alias.

Kami ingin menulis kode berikut ke dalam config/app.php mengajukan:

PHP

<?php

    'providers' => [ 

      MaatwebsiteExcelExcelServiceProvider::class, ],

    'aliases' => [ 

      'Excel' => 

      MaatwebsiteExcelFacadesExcel::class, ],

?>

Untuk mempublikasikan konfigurasi di atas, jalankan vendor: terbitkan memerintah:

php artisan vendor:publish –provider=”MaatwebsiteExcelExcelServiceProvider” –tag=config

Perintah ini untuk membuat file konfigurasi baru config/excel.php

4. Buat Rute: Kemudian kami membuat rute untuk menangani permintaan dari file impor dan ekspor.

PHP

<?php

    use AppHttpControllersUserController; 

    Route::get('/file-import',[UserController::class,

            'importView'])->nama('import-view'); 

    Route::post('/import',[UserController::class,

            'import'])->nama('import'); 

    Route::get('/export-users',[UserController::class,

            'exportUsers'])->nama('export-users');

?>

5. Buat impor kelas impor untuk data impor: Paket maatwebsite/excel menyediakan Anda untuk membangun file kelas impor. Menggunakan perintah berikut, kami membuat file kelas impor.

php artisan make:import ImportUser --model=User

File akan dibuat di app/Imports/ImportUser.php jalur:

PHP

<?php

namespace AppImports;

use AppModelsUser;

use MaatwebsiteExcelConcernsToModel;

class ImportUser implements ToModel

{

   public function model(array $row)

   {

       return new Pengguna([

           'name' => $row[0],

           'email' => $row[1],

           'password' => bcrypt($row[2]),

       ]);

   }

}

6. Buat kelas Ekspor untuk data ekspor: Paket maatwebsite/excel menyediakan Anda untuk membangun file kelas ekspor. Menggunakan perintah berikut, kami membuat file kelas ekspor.

php artisan make:export ExportUser --model=User

File akan dibuat di app/Exports/ExportUser.php jalur:

PHP

<?php

    namespace AppExports; 

    use AppModelsUser;

    use MaatwebsiteExcelConcernsFromCollection; 

 

    class ExportUser implements FromCollection { 

        public function collection() 

        

            return User::select('name','email')->get(); 

        }

    }

?>

7. Buat Pengontrol: Untuk menampilkan data dari database, kita perlu membuat satu controller. Menggunakan perintah di bawah ini kami membuat pengontrol bernama UserController.

php artisan makes: controller UserController

Perintah di atas akan membuat file pengontrol UserController.php di jalan aplikasi/Http/pengontrol direktori.

Tulis kode di bawah ini ke dalam UserController.php mengajukan:

PHP

<?php

 

namespace AppHttpControllers;

use IlluminateHttpRequest;

use MaatwebsiteExcelFacadesExcel;

use AppImportsImportUser;

use AppExportsExportUser;

use AppModelsUser;

 

class UserController extends Controller

{

    public function importView(Request $request){

        return view('importFile');

    }

 

    public function import(Request $request){

        Excel::import(new ImportUser, 

                      $request->file('file')->store('files'));

        return redirect()->back();

    }

 

    public function exportUsers(Request $request){

        return Excel::download(new ExportUser, 'users.xlsx');

    }

 }

?>

8. Buat file Blade/Lihat: Untuk menangani ekspor dan impor di frontend aplikasi web, kita perlu membuat file view atau blade. Buat file bilah di resources/views/importFile.blade.php:

HTML

<!DOCTYPE html>

<html>

 

<head>

    <title> Import and Export Excel data to database Using Laravel 5.8 </title>

    <link rel="stylesheet"

        href=

</head>

 

<body>

    <h6> Import and Export Excel data to 

           database Using Laravel 5.8

    </h6>

    <div class="container">

        <div class="card bg-light mt-3">

            <div class="card-header">

                Import and Export Excel data 

                  to database Using Laravel 5.8

            </div>

            <div class="card-body">

                <form action="{{ route('import') }}"

                      method="POST"

                      enctype="multipart/form-data">

                    @csrf

                    <input type="file" name="file"

                           class="form-control">

                    <br>

                    <button class="btn btn-success">

                          Import User Data

                       </button>

                    <a class="btn btn-warning"

                       href="{{ route('export') }}">

                              Export User Data

                      </a>

                </form>

            </div>

        </div>

    </div>

 

</body>

 

</html>

9. Jalankan proyek laravel: Jalankan perintah di bawah ini pada command prompt dan centang http://localhost:8000/file-import di peramban:

php artisan serve

Keluaran:

Ekspor Impor Laravel