Para las aplicaciones web, importar datos de hojas de Excel a nuestra base de datos y exportar datos de la base de datos a una hoja de Excel es una característica importante. Debido a esta función, podemos realizar fácilmente la importación/exportación de datos por lotes mediante la aplicación web. Es difícil en otros Frameworks pero más fácil en laravel 8. Le da a Maatwebsite/paquete de Excel para importar/exportar datos fácilmente. En este artículo, aprendemos cómo se exportan e importan los datos.
Características:
- Envíe surtidos de manera efectiva a Excel.
- Envíe preguntas con piezas programadas para una mejor ejecución.
- La línea se envía para una mejor ejecución.
- Envíe de manera efectiva las perspectivas de Blade a Excel.
- Importar efectivamente a las acumulaciones.
- Examine el registro de Excel en partes.
- Manejar las incrustaciones de importación en grupos.
Pasos para importar y exportar datos de excel en laravel: Queremos seguir algunos pasos para importar y exportar datos fácilmente. Hay 9 sencillos pasos a seguir.
- Instalar nuevo proyecto laravel
- Configurar los detalles y el modelo de la base de datos
- Instalar el paquete maatwebsite/excel
- Crear Rutas
- Crear clase de importación para importar datos
- Crear una clase de exportación para exportar datos
- Crear controlador
- Crear hoja / ver archivos
- Ejecutar proyecto laravel
1. Instale el nuevo proyecto laravel: en el primer paso, cree un nuevo proyecto laravel llamado laravel-excel. Use el siguiente comando para crear un nuevo proyecto laravel.
composer create-project laravel/laravel excel
2. Configure los detalles de la base de datos y cree un modelo: en el segundo paso, establezca la configuración de la base de datos en el archivo .env en laravel 8.
PHP
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=8258 DB_DATABASE=laravel DB_USERNAME=localhost DB_PASSWORD=
Hacer modelo: luego haga un nuevo modelo llamado Modelo de usuario para conectarse con la tabla de usuario en la base de datos. En usuario, la tabla contiene varios campos como ID, nombre, teléfono y correo electrónico.
3. Instale el paquete maatwebsite/excel: ahora, usando composer, instalamos el nombre del paquete maatwebsite/excel para exportar e importar datos usando composer
composer require maatwebsite/excel
Luego de instalar el paquete queremos dar de alta el servicio del plugin en proveedores y alias.
Queremos escribir el siguiente código en el archivo config/app.php :
PHP
<?php 'providers' => [ Maatwebsite\Excel\ExcelServiceProvider::class, ], 'aliases' => [ 'Excel' => Maatwebsite\Excel\Facades\Excel::class, ], ?>
Para publicar la configuración anterior, ejecute el comando vendor:publish :
php proveedor artesanal: publicar –proveedor=”Maatwebsite\Excel\ExcelServiceProvider” –tag=config
Este comando es para crear un nuevo archivo de configuración config/excel.php
4. Crear rutas: luego creamos rutas para manejar requests de archivos de importación y exportación.
PHP
<?php use App\Http\Controllers\UserController; 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'); ?>
5. Crear importación de clase de importación para datos de importación: el paquete maatwebsite/excel le permite crear un archivo de clase de importación. Usando el siguiente comando, creamos un archivo de clase de importación.
php artisan make:import ImportUser --model=User
El archivo se creará en la ruta app/Imports/ImportUser.php :
PHP
<?php namespace App\Imports; use App\Models\User; use Maatwebsite\Excel\Concerns\ToModel; class ImportUser implements ToModel { public function model(array $row) { return new User([ 'name' => $row[0], 'email' => $row[1], 'password' => bcrypt($row[2]), ]); } }
6. Cree una clase de exportación para exportar datos: el paquete maatwebsite/excel le proporciona la creación de un archivo de clase de exportación. Usando el siguiente comando, creamos un archivo de clase de exportación.
php artisan make:export ExportUser --model=User
El archivo se creará en la ruta app/Exports/ExportUser.php :
PHP
<?php namespace App\Exports; use App\Models\User; use Maatwebsite\Excel\Concerns\FromCollection; class ExportUser implements FromCollection { public function collection() { return User::select('name','email')->get(); } } ?>
7. Crear controlador: para mostrar datos de la base de datos, necesitamos crear un controlador. Usando el siguiente comando, creamos un controlador llamado UserController.
php artisan makes: controller UserController
El comando anterior creará un archivo de controlador UserController.php en el directorio de ruta app/Http/controllers .
Escriba el siguiente código en el archivo UserController.php :
PHP
<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use Maatwebsite\Excel\Facades\Excel; use App\Imports\ImportUser; use App\Exports\ExportUser; use App\Models\User; 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. Crear archivo Blade/View: para manejar la exportación e importación en la interfaz de una aplicación web, necesitamos crear un archivo view o blade. Cree un archivo blade en 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= "https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/4.1.3/css/bootstrap.min.css" /> </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. Ejecute el proyecto laravel: ejecute el siguiente comando en el símbolo del sistema y marque http://localhost:8000/file-import en el navegador:
php artisan serve
Producción:
Publicación traducida automáticamente
Artículo escrito por jyotsnarasam y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA