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
Publicar un comentario