Cómo exportar registros SQL a un documento de Excel con PHP

Cómo exportar registros SQL a un documento de Excel con PHP

<?php
//Función para conectarnos con la BBDD 
function conectar(){
    // Rellenamos todos los datos para conectarnos a la BBDD
    $x=new mysqli(
        "", // URL
        "", // Usuario
        "", // Clave
        "" // Nombre 
    );
    //En caso de haber un error de conexión a la BBDD...
    if ($x->connect_errno){
        //Salimos de la conexión con el error
        die ("Error: ".$x->mysqli_connect_errno().$x->mysqli_connect_error());
        exit(); 
    }
return $x;
}
//Nos conectamos a SQL
$c=conectar();

// Creamos la consulta que va a compartir la visualización en PHP y en CSV
$consulta=$c->query("SELECT idtienda,nombre,direccion FROM tiendas order by idtienda desc limit 3 ");

//Si hemos pulsado al botón de Exportar a Excel (CSV)...
if(isset($_POST["exportarCSV"])) {
    if(!empty($consulta)) {
        //El nombre del fichero tendrá el nombre de "usuarios_dia-mes-anio hora_minutos_segundos.csv"
        $ficheroExcel="usuarios ".date("d-m-Y H_i_s").".csv";
        
        //Indicamos que vamos a tratar con un fichero CSV
        header("Content-type: text/csv");
        header("Content-Disposition: attachment; filename=".$ficheroExcel);
        
        // Vamos a mostrar en las celdas las columnas que queremos que aparezcan en la primera fila, separadas por ; 
        echo "idtienda;nombre;direccion\n";    
            
        // Recorremos la consulta SQL y lo mostramos
        while($cliente=$consulta->fetch_array()){
                echo $cliente['idtienda'].";";
                echo $cliente['nombre'].";";
                echo $cliente['direccion']."\n";
        }                
    }else{
        echo "No hay datos a exportar";
    }
    //Para que se cree el Excel correctamente, hay que añadir la sentencia exit;
    exit;
}
?>
<!DOCTYPE html>
<html>
    <head>
    </head>
    <body>
        <form action="<?php echo $_SERVER[“PHP_SELF”]; ?>" method="post">
            <button type="submit" id="export_data" name="exportarCSV" value="Export to excel" class="btn btn-info">Exportar a Excel (CSV)</button>
        </form>
        <table>
            <thead>
                <tr>
                    <th>DNI</th>
                    <th>Nombre</th>
                    <th>Apellidos</th>
                    <th>Teléfono</th>
                    <th>Email</th>
                </tr>
            </thead>
            <tbody>    
                <?php
                while($cliente=$consulta->fetch_array()){
                    echo '<tr>';
                        echo '<td>'.$cliente['idtienda'].'</td>';
                        echo '<td>'.$cliente['nombre'].'</td>';
                        echo '<td>'.$cliente['direccion'].'</td>';
                        echo '<td></td>';
                        echo '<td></td>';
                    echo '</tr>';
                }
                ?>
            </tbody>
        </table>
    </body>
</html>

Alfredo

Desarrollador web de profesión (.NET, jQuery, JavaScript y SQL Server). Amante del fútbol y los videojuegos. Escribo en este blog sobre temas de programación que me parecen interesantes y que quiero compartir con todo el mundo.

También te podría gustar...

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies