DESCARGAR BACKUP ARCHIVO EXCEL EXPORTADO DESDE MYSQL PHP PDO

DESCARGAR BACKUP ARCHIVO EXCEL EXPORTADO DESDE MYSQL PHP PDO

<?php


$servername = "localhost";

$username = "root";

$password = "root";

$dbname = "bdpersonas";


try {

    $conn = new PDO("mysql:host=$servername;dbname=$dbname", $username, $password);

    $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);

} catch(PDOException $e) {

    echo "Error: " . $e->getMessage();

}



$tableName = "personas2";


try {

    $stmt = $conn->prepare("SELECT * FROM $tableName");

    $stmt->execute();

    $data = $stmt->fetchAll(PDO::FETCH_ASSOC);

} catch(PDOException $e) {

    echo "Error: " . $e->getMessage();

}


require 'vendor/autoload.php'; // Incluir el autoloader de PhpSpreadsheet


use PhpOffice\PhpSpreadsheet\Spreadsheet;

use PhpOffice\PhpSpreadsheet\Writer\Xlsx;


// Crear una nueva instancia de Spreadsheet

$spreadsheet = new Spreadsheet();

$sheet = $spreadsheet->getActiveSheet();


// Obtener los datos de la tabla de MySQL (código previo)


// Escribir los nombres de las columnas en la primera fila del archivo .xlsx

$columnNames = array_keys($data[0]);

$columnIndex = 1;

foreach ($columnNames as $columnName) {

    $sheet->setCellValueByColumnAndRow($columnIndex, 1, $columnName);

    $columnIndex++;

}


// Escribir los datos en las filas siguientes

$rowIndex = 2;

foreach ($data as $rowData) {

    $columnIndex = 1;

    foreach ($rowData as $cellData) {

        $sheet->setCellValueByColumnAndRow($columnIndex, $rowIndex, $cellData);

        $columnIndex++;

    }

    $rowIndex++;

}


// Crear el objeto Writer para el archivo .xlsx

$writer = new Xlsx($spreadsheet);


// Definir los encabezados para la descarga

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');

header('Content-Disposition: attachment;filename="backup_tabla.xlsx"');

header('Cache-Control: max-age=0');


// Guardar el archivo en el buffer de salida y enviarlo al navegador

$writer->save('php://output');

exit();


?>

Comentarios

Entradas populares de este blog

INSERTAR Y UPDATE FECHA CON PHP MYSQL EN FORMULARIO METODO POST CON JQUERY ETIQUETA DATE

Copia de Seguridad de Archivo MS Access (.mdb) a Pendrive con VB6

CONVERTIR IMÁGEN JPG O PNG A WEBP CON PHP DE FORMA SIMPLE