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'];
?>







