File "generarExcelVehiculo.php"

Full Path: C:/wamp64/www/porteria/Vehiculos/generarExcelVehiculo.php
File size: 2.33 KB
MIME-type: text/x-php
Charset: utf-8

<?php
// Cargar las librerías necesarias
require '../vendor/autoload.php'; 
require '../connection.php';

// Importar las clases de PhpSpreadsheet
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;

// Establecer conexión con la base de datos
$connection = connection();

// Consulta SQL para obtener los datos necesarios
$sql = "SELECT REG, FECHA, CONDUCTOR, PLACA, GRUPO, HORAL, CANASTAASENT, KILOMETRAJEENT, OBSERVACIONES, HORAS, DESTINO, CANASTASSALE, KILOMETRAJESAL, ORDEN, SELLO, DEVOLUCION, OBS2, TIPOC, AVES, DESTINOSALIDA FROM vehiculos";
$query = mysqli_query($connection, $sql);

// Verificar si la consulta SQL tiene errores
if (!$query) {
    die("Error en la consulta SQL: " . mysqli_error($connection));
}

// Crear una nueva instancia de Spreadsheet
$excel = new Spreadsheet();

// Obtener la hoja activa y asignar un título
$hojaActiva = $excel->getActiveSheet();
$hojaActiva->setTitle("porteriaVehiculos");

// Configurar los encabezados de las columnas
$encabezados = [
    'A1' => 'REG', 'B1' => 'FECHA', 'C1' => 'CONDUCTOR', 'D1' => 'PLACA',
    'E1' => 'GRUPO', 'F1' => 'HORAL', 'G1' => 'CANASTAASENT', 'H1' => 'KILOMETRAJEENT',
    'I1' => 'OBSERVACIONES', 'J1' => 'HORAS', 'K1' => 'DESTINO', 'L1' => 'CANASTASSALE',
    'M1' => 'KILOMETRAJESAL', 'N1' => 'ORDEN', 'O1' => 'SELLO', 'P1' => 'DEVOLUCION',
    'Q1' => 'OBS2', 'R1' => 'TIPOC', 'S1' => 'AVES', 'T1' => 'DESTINOSALIDA'
];

// Asignar los encabezados a la hoja activa
foreach ($encabezados as $celda => $valor) {
    $hojaActiva->setCellValue($celda, $valor);
}

// Variable para rastrear la fila actual
$FILA = 2;

// Recorrer los resultados de la consulta y escribirlos en la hoja de cálculo
while ($row = mysqli_fetch_assoc($query)) {
    // Usar fromArray para escribir toda la fila a partir de la columna A
    $hojaActiva->fromArray(array_values($row), null, 'A' . $FILA);
    $FILA++;
}

// Configurar los encabezados HTTP para descargar el archivo Excel
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="reporteVehiculo.xlsx"');
header('Cache-Control: max-age=0');

// Crear el escritor de Xlsx y guardar el archivo en la salida estándar
$writer = new Xlsx($excel);
$writer->save('php://output');
exit();
?>