HTML a Excel archivos | Hugo Parrales Experto en Wordpress & Marketing Digital Wed, 18 Dec 2019 19:32:41 +0000 es hourly 1 https://i0.wp.com/hugoparrales.com/wp-content/uploads/2019/12/cropped-nav-logo-1.png?fit=32%2C32&ssl=1 HTML a Excel archivos | Hugo Parrales 32 32 170279445 Tabla HTML a Excel con Php https://hugoparrales.com/tabla-html-a-excel-con-php/ https://hugoparrales.com/tabla-html-a-excel-con-php/#respond Wed, 18 Dec 2019 19:32:35 +0000 https://hugoparrales.com/?p=905 Hace un par de días me encontraba desarrollando un proyecto y surgió la necesidad de exportar una Tabla HTML del Sitio Web a Excel para ...

Leer articulo

La entrada Tabla HTML a Excel con Php se publicó primero en Hugo Parrales.

]]>
Hace un par de días me encontraba desarrollando un proyecto y surgió la necesidad de exportar una Tabla HTML del Sitio Web a Excel para poder enviarla por email a un proveedor.

Existen varias formas de convertir un Tabla de HTML a Excel utilizando Php. En este articulo te mostrare como hacerlo de la forma mas simple. Sin la necesidad de recurrir a librerías externas.

Código para convertir HTML a Excel

El código que utilizaremos para pasar una Tabla en HTML al formato Xls (Excel) es el siguiente:

Haz clic aquí para ver el Código Completo
/* HTML a Excel
Autor: Hugo Parrales
Website: hugoparrales.com
version: 0.1
*/ 
//establecemos el timezone para obtener la hora local
date_default_timezone_set('America/El_Salvador');
 
//la fecha y hora de exportación sera parte del nombre del archivo Excel
$fecha = date("d-m-Y H:i:s");
 
//Inicio de exportación en Excel
header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=Convertido_$fecha.xls"); //Indica el nombre del archivo resultante
header("Pragma: no-cache");
header("Expires: 0");

//Aqui va la tabla HTML
echo "<table>
  <tr>
                      <th style='background:#CCC; color:#000'>
                      Codigo
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Producto
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Precio
                      </th>
  </tr>
  <tr>
                      <td>
                      CD008
                      </td>
                      <td>
                      Maquina #1
                      </td>
                      <td>
                      $1000
                      </td>
  </tr>
  <tr>
                      <td>
                      CX018
                      </td>
                      <td>
                      Maquinas #2
                      </td>
                      <td style='background:yellow'>
                      $700
                      </td>
  </tr>
  <tr>
                      <td>
                      FX078
                      </td>
                      <td>
                      Maquinas #3
                      </td>
                      <td>
                      $150
                      </td>
  </tr>
  <tr>
                      <td>
                      CA-862
                      </td>
                      <td>
                      Maquinas #4
                      </td>
                      <td>
                      $785.50
                      </td>
  </tr>
  </table>";

El código es sencillo y fácil de implementar. Ademas el contenido de tabla HTML puede ser dinámico y ser extraído de tu Base de Datos.

Código explicado paso a paso

Para poder convertir una Tabla HTML a Excel utilizando Php debemos incluir las siguientes lineas de header:

header('Content-type: application/vnd.ms-excel');
header("Content-Disposition: attachment; filename=Convertido_$fecha.xls"); //Indica el nombre del archivo resultante
header("Pragma: no-cache");
header("Expires: 0");

La primera linea indica el tipo de aplicación que deseamos obtener. La segunda linea es la que da el nombre al archivo convertido. Como puedes ver después del «filename» he utilizado una combinación de variables.

filename=Convertido_$fecha.xls

La variable ($fecha) me permite que cada vez que el archivo sea convertido tenga un nombre diferente y no me genere duplicados. Por ello ademas en el código he incluido la siguiente instrucción:

$fecha = date("d-m-Y H:i:s");

El ultimo paso es incluir el contenido de tu Tabla HTML en un Echo

//Aqui va la tabla HTML
echo "<table>
  <tr>
                      <th style='background:#CCC; color:#000'>
                      Codigo
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Producto
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Precio
                      </th>
  </tr>
  <tr>
                      <td>
                      CD008
                      </td>
                      <td>
                      Maquina #1
                      </td>
                      <td>
                      $1000
                      </td>
  </tr>
  <tr>
                      <td>
                      CX018
                      </td>
                      <td>
                      Maquinas #2
                      </td>
                      <td style='background:yellow'>
                      $700
                      </td>
  </tr>
  <tr>
                      <td>
                      FX078
                      </td>
                      <td>
                      Maquinas #3
                      </td>
                      <td>
                      $150
                      </td>
  </tr>
  <tr>
                      <td>
                      CA-862
                      </td>
                      <td>
                      Maquinas #4
                      </td>
                      <td>
                      $785.50
                      </td>
  </tr>
  </table>";

Como implementar el código para pasar una Tabla HTML a Xls

Para poder convertir una Tabla de HTML a Excel utilizando el código Php mostrado lo que debemos hacer es crear un archivo y luego enviarle las variables al mismo. Por ejemplo yo nombrare a este archivo como «convertir-excel.php»

Ahora lo que debemos hacer es desde nuestra pagina con la Tabla HTML enviar el contenido de la misma a nuestro archivo «convertir-excel.php»

La descarga del archivo inicia de forma automática con el nombre y la hora que hemos colocado en el código previamente.

Ejemplo de como pasar una Tabla HTML a Excel

A continuación te muestro un ejemplo practico. Deseo pasar la siguiente tabla a un archivo de Excel.

Código Producto Precio
CD008Maquina #1$1000
CX018Maquinas #2$700
FX078Maquinas #3$150
CA-862Maquinas #4$785.50

Para convertir la Tabla HTML a Excel haz clic en el siguiente botón:

Al hacer clic sobre el botón, la descarga iniciara automáticamente y te generara un archivo llamado «Convertido_(aqui muestra le fecha y hora).

Al abrir el archivo es probable que te aparezca un mensaje como el siguiente:

Tabla HTML a Excel
Mensaje de advertencia de Excel al abrir el archivo convertido de Tabla HTML

El mensaje es normal y lo único que debemos hacer es hacer clic en «Si» para que Excel nos muestro nuestra Tabla convertida.

Tabla HTML a Excel
Tabla HTML convertida a Xls con Php

Como darle estilo a la Tabla convertida en Excel con Php

Los estilos que podemos aplicar utilizando este código son limitados, sin embargo pueden ser mas que suficientes si lo que buscamos en una solución rápida.

Para aplicar estilos a nuestra Tabla Convertida debemos incluirlos dentro del código HTML impreso en nuestro Echo.

echo "<table>
  <tr>
                      <th style='background:#CCC; color:#000'>
                      Codigo
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Producto
                      </th>
                      <th style='background:#CCC; color:#000'>
                      Precio
                      </th>
  </tr>

Como puedes ver en el código en el encabezada de mi Tabla HTML he colocado un estilo con «background: #CCC».

Si deseas por ejemplo que tu Tabla ocupe el 100% de la hoja visible de Excel y tenga bordes, debieras utilizar el siguiente codigo:

<table style='border: 1px solid black; border-collapse: collapse;' width='100%'>

Ademas recuerda que también puedes imprimir tus H1 y H2 dentro del archivo de Excel e inclusive saltos de linea con <br> y <hr> colocando:

echo "<h2 style='color:#006c3c'> hugoparrales.com </h2>";
echo "<h4> San Salvador, El Salvador <br> <hr>";

echo "Please complete the following products with unit prices and final prices in order to assess the purchase and import of the same<br>";

Dando un resultado mas atractivo:

Tabla HTML a Excel
Tabla HTML con estilos convertida a formato Excel

Existen soluciones mas completas para convertir HTML a Excel como por ejemplo la librera PhpExcel. Sin embargo, la que te muestro aquí es la forma mas rápida de exportar y utilizar tus tablas en Excel.

Como puedes ver convertir HTML al formato de Excel utilizando Php no es complicado. ¿Tienes dudas? déjalas en los comentarios y tratare de ayudarte.

La entrada Tabla HTML a Excel con Php se publicó primero en Hugo Parrales.

]]>
https://hugoparrales.com/tabla-html-a-excel-con-php/feed/ 0 905