Laravel Excel dirancang untuk menjadi PhpSpreadsheet rasa Laravel. Ini adalah pembungkus yang dapat diatur dan elegan di sekitar PhpSpreadsheet untuk menyederhanakan ekspor dan impor. PhpSpreadsheet adalah pustaka berbasis php yang memungkinkan Anda membaca dan menulis berbagai format file spreadsheet, seperti Excel dan LibreOffice Calc. Laravel Excel memiliki fitur-fitur berikut:
- Ekspor koleksi ke Excel dengan mudah.
- Ekspor kueri dengan chunking otomatis untuk kinerja yang lebih baik.
- Ekspor antrian untuk kinerja yang lebih baik.
- Ekspor tampilan Blade dengan mudah ke Excel.
- Impor ke koleksi dengan mudah.
- Baca file Excel dalam potongan.
- Tangani sisipan impor dalam batch.
Jika Anda ingin membuat impor dan ekspor yang mudah, fungsionalitas file excel, tutorial laravel maatwebsite/excel ini adalah yang terbaik untuk Anda.
Di akhir tutorial ini, Anda akan dapat mengunduh atau mengimpor file excel & CSV langsung dari database di aplikasi laravel.
Persyaratan
- PHP:
^7.2|^8.0
- Laravel:
^5.8
- PhpSpreadsheet:
^1.15
- ekstensi PHP
php_zip
diaktifkan - ekstensi PHP
php_xml
diaktifkan - ekstensi PHP
php_gd2
diaktifkan - ekstensi PHP
php_iconv
diaktifkan - ekstensi PHP
php_simplexml
diaktifkan - ekstensi PHP
php_xmlreader
diaktifkan - ekstensi PHP
php_zlib
diaktifkan
Langkah 1: Instal Proyek Laravel
Pertama, buka Terminal dan jalankan perintah berikut untuk membuat proyek laravel baru:
composer create-project --prefer-dist laravel/laravel laravel-excel
atau, jika Anda telah menginstal Laravel Installer sebagai dependensi komposer global:
laravel new laravel-excel
Langkah 2: Konfigurasikan Detail Basis Data
Setelah, Instalasi Buka direktori root proyek, buka file .env, dan atur detail basis data sebagai berikut:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=<DATABASE NAME>
DB_USERNAME=<DATABASE USERNAME>
DB_PASSWORD=<DATABASE PASSWORD>
Baca Juga: Unggah File dan Gambar dengan Validasi di Laravel
Langkah 3: Instal paket maatwebsite/excel
Anda dapat menginstal Laravel Excel melalui komposer. Anda harus menjalankan perintah ini untuk instalasi.
composer require maatwebsite/excel
Daftarkan Layanan Plugin di Penyedia & Alias
Anda dapat memiliki kode berikut ditempatkan di dalam config/app.php mengajukan.
'providers' => [
MaatwebsiteExcelExcelServiceProvider::class,
],
'aliases' => [
'Excel' => MaatwebsiteExcelFacadesExcel::class,
],
Jalankan vendor, publikasikan perintah, dan publikasikan konfigurasi.
php artisan vendor:publish --provider="MaatwebsiteExcelExcelServiceProvider" --tag=config
Ini akan membuat file konfigurasi baru bernama config/excel.php
.
Langkah 4: Hasilkan Data Palsu dan Migrasi Tabel
Pada langkah Pertama, Kami memigrasikan tabel pengguna. Setelah migrasi berjalan dengan sukses Kami pindah ke langkah kedua.
php artisan migrate
Pada Langkah Kedua, Kami menghasilkan catatan palsu. Di sini Kami menggunakan tinker untuk menghasilkan catatan palsu. Anda dapat menggunakan metode yang berbeda sesuai kebutuhan Anda.
php artisan tinker
Setelah Membuka tinker, Anda perlu menjalankan perintah ini untuk menghasilkan catatan palsu di database kami.
User::factory()->count(100)->create();
Langkah 5: Buat Rute
Pada langkah ini, Kami akan menambahkan rute untuk menangani permintaan impor dan ekspor file.
use AppHttpControllersUserController;
Route::get('/file-import',[UserController::class,'importView'])->name('import-view');
Route::post('/import',[UserController::class,'import'])->name('import');
Route::get('/export-users',[UserController::class,'exportUsers'])->name('export-users');
Langkah 6: Buat Kelas Impor
Maatwebsite menyediakan cara untuk membangun kelas impor dan kita harus menggunakannya di controller. Jadi itu akan menjadi cara yang bagus untuk membuat kelas Impor baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:
php artisan make:import ImportUser --model=User
app/Imports/ImportUser.php
<?php
namespace AppImports;
use AppModelsUser;
use MaatwebsiteExcelConcernsToModel;
class ImportUser implements ToModel
{
/**
* @param array $row
*
* @return IlluminateDatabaseEloquentModel|null
*/
public function model(array $row)
{
return new User([
'name' => $row[0],
'email' => $row[1],
'password' => bcrypt($row[2]),
]);
}
}
Di sini Anda dapat melihat peta CSV atau nilai kolom excel ke Model Eloquent kami. Anda perlu memformat kolom CSV atau excel itu saat Anda memetakan di kelas impor Anda.
Baca Juga: Cara Menginstal MongoDB di Ubuntu 20.04
Langkah 7: Buat Kelas Ekspor
Maatwebsite menyediakan cara untuk membangun kelas ekspor dan kita harus menggunakannya di controller. Jadi itu akan menjadi cara yang bagus untuk membuat kelas ekspor baru. Jadi Anda harus menjalankan perintah berikut dan mengubah kode berikut pada file itu:
php artisan make:export ExportUser --model=User
app/Exports/ExportUser.php
<?php
namespace AppExports;
use AppModelsUser;
use MaatwebsiteExcelConcernsFromCollection;
class ExportUser implements FromCollection
{
/**
* @return IlluminateSupportCollection
*/
public function collection()
{
return User::select('name','email')->get();
}
}
Langkah 8: Buat Pengontrol
Selanjutnya kita harus membuat controller untuk menampilkan form upload record file CSV atau excel. Mari Buat pengontrol bernama UserController
menggunakan perintah yang diberikan di bawah ini:
php artisan make:controller UserController
Setelah perintah di atas dijalankan, itu akan membuat file pengontrol UserController.php di dalam aplikasi/Http/Pengontrol direktori. Membuka UserController.php file dan masukkan kode ini ke dalam file itu.
<?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');
}
}
Langkah 9: Buat Blade / Lihat File
Kami telah mencapai langkah terakhir. Secara umum, di sini kita perlu merumuskan tampilan untuk menangani impor dan ekspor melalui frontend. Membuat resources/views/importFile.blade.php file untuk mengatur tampilan. Tempatkan kode berikut di dalam file tampilan blade:
<!DOCTYPE html>
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>Laravel 8 Import Export Excel & CSV File - TechvBlogs</title>
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.5.0/css/bootstrap.min.css">
</head>
<body>
<div class="container mt-5 text-center">
<h2 class="mb-4">
Laravel 8 Import Export Excel & CSV File - <a href="https://techvblogs.com/blog/laravel-import-export-excel-csv-file?ref=repo" target="_blank">TechvBlogs</a>
</h2>
<form action="{{ route('import') }}" method="POST" enctype="multipart/form-data">
@csrf
<div class="form-group mb-4">
<div class="custom-file text-left">
<input type="file" name="file" class="custom-file-input" id="customFile">
<label class="custom-file-label" for="customFile">Choose file</label>
</div>
</div>
<button class="btn btn-primary">Import Users</button>
<a class="btn btn-success" href="{{ route('export-users') }}">Export Users</a>
</form>
</div>
</body>
</html>
Jalankan Aplikasi Laravel
Terakhir, kita harus menjalankan aplikasi Laravel, untuk ini, kita harus pergi ke command prompt, dan menulis perintah berikut:
php artisan serve
Setelah menjalankan perintah ini, Buka http://localhost:8000/file-import di peramban Anda.
Terima kasih untuk membaca blog ini.
Baca Juga: Cara Menginstal Git Di Ubuntu 20.04
Jika Anda ingin mengelola Server VPS / VM Anda tanpa menyentuh baris perintah, buka dan Periksa tautan ini. ServerAvatar memungkinkan Anda dengan cepat mengatur situs web WordPress atau PHP Kustom di VPS / VM di a hitungan menit. Anda dapat meng-host beberapa situs web pada satu VPS / VM, mengonfigurasi sertifikat SSL, dan memantau kesehatan server Anda tanpa pernah menyentuh antarmuka baris perintah.
Jika Anda memiliki pertanyaan atau keraguan tentang topik ini, jangan ragu untuk menghubungi kami. Kami akan mencoba menghubungi Anda.