24 octubre, 2018
Para exportar a Excel desde PHP y Mysql debes tener una BD Mysql con datos, una conexión a la BD, el diseño del Layout HTML, finalmente un botón.
Suscríbete a nuestro canal en Youtube
Suscríbirse¡Hola!...Bienvenido a este pequeño tutorial sobre cómo exportar una tabla Mysql usando PHP a un formato de Excel XLS.
Al grano, en algunas aplicaciones web necesitas funcionalidades como reportes visuales y deben ser reportes hacia documentos legibles que sean de fácil interpretación a un usuario común los probables formatos son en PDF, EXCEL, Etc... en esta ocación veremos la forma más sencilla de exportar datos de una base de datos a Excel, el caso práctico en ésta ocasión es "un listado de usuarios a formato excel"; creándose un documento para su descarga automática desde la misma aplicación web. Y una cosa muy importante que quiero hacer incapié que es sin usar librerías adicionales, las cuáles pueden ralentizar el proceso de tu aplicación. Claro ello depende de algunos factores pero uno de ellos puede ser usar librerías.
Bueno, al punto. ¿Qué actividades vamos a llevar a cabo? son los pasos que también tienes que tener en cuenta antes de empezar. ¿Por qué? porque me dió y te dará cierto orden a la hora de desarrollar. Y son lo siguientes:
Ahora. Antes de debes crear una base de datos, yo usé el servidor local Xampp, donde creé la base de datos, le dí el nombre de bdusuarios y dentro ejecuté en la consola SQL el siguiente script MYSQL, o también puedes crear la tabla con la interfaz gráfica de Xampp puedes usar cualquier nombre para la tabla, particularmente yo usé el nombre de usuario. Veamos el código MYSQL:
El script crea la base de datos e inserta unos registros que nos ayudará para debugear o mejor dicho testear el resultado del código interpretado.
Para la conexión, usaremos un par de clases con que me realmente me ayudan en gran parte de mis proyectos.
Veamos código para conectarnos a la BD MySql
Archivo de configuración config.php
<?php
define("DB_NAME","bdusuarios");
define("DB_USER","root");
define("DB_PASS","");
Archivo de conexión a la BD Mysql
<?php
require "config.php";
class Conexion{
public $cnx;
public function conectar(){
try {
$opciones = array(
PDO::MYSQL_ATTR_INIT_COMMAND => "SET NAMES utf8",
PDO::ATTR_ERRMODE =>PDO::ERRMODE_EXCEPTION
);
$this->cnx = new PDO(
"mysql:host=localhost;
dbname=".DB_NAME,
DB_USER,
DB_PASS,
$opciones
);
return $this->cnx;
} catch (PDOException $e) {
echo $e->getMessage();
}
}
public function desconectar(){
$this->cnx = null;
}
}
Ahora el método necesario para la consulta
<?php
require "conexion.php";
class Consulta{
private $_db;
private $lista_usuarios;
public function __construct(){
$this->_db = new Conexion();
}
public function buscar(){
$this->_db->conectar();
$consulta = $this->_db->cnx->prepare("SELECT * FROM usuario");
$consulta->execute();
while($row = $consulta->fetch(PDO::FETCH_OBJ)){
$this->lista_usuarios[] =$row;
}
$this->_db->desconectar();
return $this->lista_usuarios;
}
}
Lo llamaremos plantilla.php, quién creará el doc. excel para su descarga
<?php
require "consulta.php";
$usuario = new Consulta();
$salida = "";
$salida .= "<table>";
$salida .= "<thead> <th>ID</th> <th>Nombre</th><th>Email</th></thead>";
foreach($usuario->buscar() as $r){
$salida .= "<tr> <td>".$r->id."</td> <td>".$r->nombre."</td><td>".$r->email."</td></tr>";
}
$salida .= "</table>";
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=usuarios_".time().".xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $salida;
Este archivo es típico html, al cual se le agrega en el body la siguiente línea.
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<table>
<tr>
<td>ARCHIVO EXCEL</td>
<td><a href="plantilla.php">DESCARGAR EXCEL</a></td>
</tr>
</table>
</body>
</html>
Finalmente tenemos una funcionalidad básica y sencilla, pero fácil de implementar en tu aplicación web. Lógicamente todo código se puede mejorar y/o optimizar.
Bueno, hasta un próximo tutorial.
Leido 34201 veces | 6 usuarios
734 descargas
Para descargar el código crea una cuenta
Crear cuenta© Copyright Codea::App Cursos de Programación Online | LATAM | 2020 - 2024