Descargar tabla HTML a excel desde evento de un botón

publicado por: Anonymous

Quiero hacer una exportación de una tabla html a excel. Sé que para hacerlo normalmente se utiliza esto:

header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=NombreArchivo;
header("Pragma: no-cache");
header("Expires: 0");

Pero lo que hace esto es que cuando entro a la tabla descarga inmediatamente el excel pero…¿Cómo puedo hacer para descargar el archivo al presionar un botón?

solución

Creo que debieras usar DataTable, a mi parecer me a resultado bastante cómodo, y no solo descargas la tabla a excel, sino que también puedes descargarla como pdf hacerle un print y hasta visualizar las columnas que tu estimes convenientes.

A continuación dejo el enlace de Datatable.

Para indicarte un poco como haces uso de estos, debes importar los scripts correspondientes en tu homedash por defecto, que sería tu página principal donde visualizas las tablas ahi debes agregar los scripts.

Scripts

<script>//code.jquery.com/jquery-1.12.4.js</script>
<script>https://cdn.datatables.net/1.10.15/js/jquery.dataTables.min.js</script>
<script>https://cdn.datatables.net/buttons/1.4.0/js/dataTables.buttons.min.js</script>
<script>//cdn.datatables.net/buttons/1.4.0/js/buttons.flash.min.js</script>
<script>//cdnjs.cloudflare.com/ajax/libs/jszip/3.1.3/jszip.min.js</script>
<script>//cdn.rawgit.com/bpampuch/pdfmake/0.1.27/build/pdfmake.min.js</script>
<script>//cdn.rawgit.com/bpampuch/pdfmake/0.1.27/build/vfs_fonts.js</script>
<script>//cdn.datatables.net/buttons/1.4.0/js/buttons.html5.min.js</script>
<script>//cdn.datatables.net/buttons/1.4.0/js/buttons.print.min.js</script>

CSS

<link rel="stylesheet" href="https://cdn.datatables.net/1.10.15/css/jquery.dataTables.min.css">
<link rel="stylesheet" href="https://cdn.datatables.net/buttons/1.4.0/css/buttons.dataTables.min.css">

Funcion(puedes hacer un llamado o ponerla en un script)

$(function() {
    $('#**IDdeTabla**').DataTable( {
        dom: 'Bfrtip',
        buttons: [
            'copy', 'csv', 'excel', 'pdf', 'print'
        ]
    } );
} );

De esa manera puedes implementar datatable para la descargar desde un botón tu tabla en excel, importarla a pdf o solo copiarla.

Saludos, espero puedas implementar Datatable en tu código.

Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *