Exportar a Excel listado GridView

Exportar a Excel listado GridView


En el siguiente ejemplo veras cómo agregar un menú para exportar a Excel utilizando un GridView, con el pluging de kartik. 



Requisitos

Para este ejemplo necesitaras utilizar dos plugins llamados.

GridView de kartik
Export de kartik

El componente de "export" te permite exportar todos los datos de tu base de datos, a varios formatos por ejemplo: (Excel, HTML, Pdf, CSC, Texto) utilizando la librería "PHP Spreadsheet". 

La extensión simplifica el exportar a través de un menú que se genera de manera automática.

Esta librería extiende la funcionalidad del widget "kartik\grid\GridView" y puede ser configurado con  un "dataProvider" y las propiedades de las columnas como cualquier "GridView". Sin embargo, la diferencia es que el widget será usado para exportar los datos completos y por lo tanto no será exportado de manera predeterminada.


Ejemplo de Menú para exportar a Exel utilizando un GridView


En el siguiente ejemplo se muestra como implementarlo en un solo listado de manera independiente, es decir solo lo queremos implementar en un solo listado.

Instalación de Widget

Se recomienda instalar via composer agregando la siguiente línea:



  "kartik-v/yii2-export": "dev-master"


Después actualizar composer.

Agregar configuración a Vista

El siguiente paso es agregar el menú a tu listado el cual se realiza incluyendo 2 widgets que trabajan en conjunto, "kartik\grid\GridView" y "kartik\export\ExportMenu" mediante la inclusión en la vista utilizando "use".


  use kartik\export\ExportMenu; // Libreria para menu
  use kartik\grid\GridView; // Libreria para GridView


Normalmente colocamos el detalle de las columnas dentro del GridView, pero en este caso tenemos que guardar la configuración de las columnas en un arreglo por separado para que pueda ser compartido para el menú, de la siguiente manera.



  $gridColumns = [
        'id',
        'fecha_hora_creacion',
        [
            'attribute' => 'ticket_estatus_id',
            'value' => 'ticketEstatus.nombre',
            'label' => 'Estatus'
        ],
        [
            'attribute' => 'proveedor_id',
            'value' => 'proveedor.nombre',
            'label' => 'Proveedor'
        ],
    ];


A continuación agregue las siguientes líneas que son las que generan el menú, note que estamos utilizando la variable $gridColumns que contienen el detalle de configuración de las columnas del GridWiew



// Estas lineas imprimen el menu
   echo ExportMenu::widget([
        'dataProvider' => $dataProvider,
        'columns' => $gridColumns,
        'dropdownOptions' => [
        'label' => 'Export All',
        'class' => 'btn btn-outline-secondary'
        ]
    ]) ;




Por último agrregue el GridView, observe estamos utilizando la misma variable $gridColumns con las columnas. 



    GridView::widget([
        'dataProvider' => $dataProvider,
        'columns' => $gridColumns,
    ]);





Referencias.

https://demos.krajee.com/export
https://demos.krajee.com/export-demo
https://demos.krajee.com/export-demo-dtl/grid-basic


Comentarios

Aprende Yii2


Lo más Visto

Cómo instalar RBAC

Select dependientes en cascada

Tutorial de implementación de calendario de rango de fechas con Karkit en gridView

Cómo enviar correos con Yii2

Creación de PDF con kartik\mpdf\Pdf

hostinger

ventana bienvenida