destacados

Gabriel Da Silva

Portafolio del ilustrador y director de arte brasileño, aunque afincado en Madrid, Gabriel Da Silva.

B&W Helmut Newton

Selección de fotografías en blanco y negro de uno de los fotógrafos más conocidos de las últimas décadas, Helmut Newton.

Judith Erwes

Fotógrafa afincada en Londres con un estilo que combina la moda, el humor y la estética retro.

Jody Rogac

Nacida en Inglaterra y criada en Canadá, Jody Rogac en la actualidad vive y trabaja en Brooklyn. Sus trabajo ha obtenido diversos galardones.

Publicaciones

Exportar tablas HTML a Excel con PHP y JQuery

, , , , 26/03/2009 09:36:57

En un post anterior vimos cómo usando una clase podíamos Crear hojas de cálculo Excel con PHP. En este post vamos a ver cómo utilizar jQuery para exportar los datos de una tabla a Excel. El tutorial es una adaptación de lo explicado en un post de TopSEMLTips. Lo primero que necesitamos es importar jQuery:

<script type="text/javascript" src="jquery-1.3.2.min.js"></script>

Lo siguiente es tener una tabla en HTML que deseamos exportar a Excel. Puesto que luego lo utilizaremos, necesitamos asignarle un identificador a la tabla, por ejemplo id="Exportar_a_Excel".

<table id="Exportar_a_Excel">
<tr>
     <td>Celda1</td>
     <td>Celda2</td>
     <td>Celda3</td>
     <td>Celda4</td>
     <td>Celda5</td>
</tr><tr>
     <td>Celda6</td>
     <td>Celda7</td>
     <td>Celda8</td>
     <td>Celda9</td>
     <td>Celda10</td>
</tr>
</table>

Lo siguiente es crear un formulario, también con un identificador para almacenar el contenido de la tabla en un campo oculto y posteriormente enviarlo al php que generará la hoja de cálculo.

<form action="ficheroExcel.php" method="post" target="_blank" id="FormularioExportacion">
<p>Exportar a Excel  <img src="export_to_excel.gif" class="botonExcel" /></p>
<input type="hidden" id="datos_a_enviar" name="datos_a_enviar" />
</form>

Ahora necesitaremos volcar toda la tabla en el campo oculto y enviar el formulario. Para ello nos servimos de jQuery:

<script language="javascript">
$(document).ready(function() {
     $(".botonExcel").click(function(event) {
     $("#datos_a_enviar").val( $("<div>").append( $("#Exportar_a_Excel").eq(0).clone()).html());
     $("#FormularioExportacion").submit();
});
});
</script>

El fichero php recogerá el contenido del campo oculto "datos_a_enviar" y lo mostrará con el content-type apropiado. Así pues, ficheroExcel.php sería:

<?php
header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: filename=ficheroExcel.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $_POST['datos_a_enviar'];
?>

Ver ejemplo en funcionamiento » »

Descargar ejemplo completo » »

Páginas: 1
comentarioscomentarios