Exportar a excel o word usando HTML y PHP

Veremos como exportar a word o excel usando tan solo PHP para el tipo de archivo y html para mostrar la información.

Rodríguez Patiño, Eduardo
2021-04-19 | 22,093 lecturas

Muy bien muchachos, con el mismo ejemplo de la entrada anterior Realizando un CRUD (listar/registrar/actualizar/eliminar) con PHP, ahora nos toca exportar el listado hacia un excel o word la cual es muy fácil ya que vamos a usar simplemente HTML.

Vamos a crear un nuevo archivo llamado output.php

require_once 'alumno.entidad.php';
require_once 'alumno.model.php';

// Logica
$model = new AlumnoModel();

$tipo = isset($_REQUEST['t']) ? $_REQUEST['t'] : 'excel';
$extension = $tipo == 'excel' ? '.xls' : '.doc';

header("Content-type: application/vnd.ms-$tipo"); /* Indica que tipo de archivo es que va a descargar */
header("Content-Disposition: attachment;filename=mi_archivo$extension"); /* El nombre del archivo y la extensiòn */
header("Pragma: no-cache");
header("Expires: 0");
  • Primero tenemos que cargar nuestras clases que contienen las consultas a MySQL

  • Luego hacemos una instancia a AlumnoModel ya que nos interesa su método Listar

  • Hacemos una jugada con la queryString para saber que tipo de archivo vamos a exportar. Estos valores son word o excel.

  • Con estos valores capturados ahora hacemos otra jugada para saber que tipo de extensión es, xls o doc.

  • Luego le decimos a la página que sus cabeceras sean del archivo elegido y que proceda con la descarga

Con este ejemplo hemos visto una forma práctica y rápida de crear reportes, para cosas más complejas podemos buscar clases de PHP que hagan ese trabajo. Pero para mí, la mayoría de mis reportes no han sido muy exigentes y con esto ha bastado. Es cosa de ingeniería.


- Nuestros cursos -

Curso de Microservicios con .Net Core 3+
Curso de TypeScript desde cero
Curso de ASP.NET Core 3+ enfoque SPA con VueJS
Curso de C# desde cero
Curso de Patrones de diseño con TypeScript
Curso de VueJS desde cero