Laravel Importar Exportar archivo de Excel

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.

  1. Instalar nuevo proyecto laravel 
  2. Configurar los detalles y el modelo de la base de datos
  3. Instalar el paquete maatwebsite/excel
  4. Crear Rutas 
  5. Crear clase de importación para importar datos 
  6. Crear una clase de exportación para exportar datos 
  7. Crear controlador 
  8. Crear hoja / ver archivos
  9. 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:

Laravel Importación Exportació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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *