<?php
// Incluir el archivo de la librería PhpSpreadsheet
require 'vendor/autoload.php';  // Solo si usas Composer
// require 'path/to/PhpSpreadsheet/autoload.php'; // Si no usas Composer

use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\Style\Alignment;

// Conexión a la base de datos (ajusta esto según tu configuración)
include 'conexion.php';

// Consulta para obtener los datos de la base de datos
$sql = "SELECT id, serie, fecha_registro, estado FROM series WHERE estado = 'No usado' ORDER BY id DESC";
$result = $conn->query($sql);

// Crear un objeto Spreadsheet
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Establecer los encabezados de las columnas
$sheet->setCellValue('A1', 'ID')
      ->setCellValue('B1', 'Serie')
      ->setCellValue('C1', 'Fecha Registro')
      ->setCellValue('D1', 'Estado');

// Estilo para los encabezados
$sheet->getStyle('A1:D1')->getFont()->setBold(true);
$sheet->getStyle('A1:D1')->getAlignment()->setHorizontal(Alignment::HORIZONTAL_CENTER);

// Agregar los datos de la base de datos a las filas de Excel
$row = 2;
while ($data = $result->fetch_assoc()) {
    $sheet->setCellValue('A' . $row, $data['id'])
          ->setCellValue('B' . $row, $data['serie'])
          ->setCellValue('C' . $row, $data['fecha_registro'])
          ->setCellValue('D' . $row, $data['estado']);
    $row++;
}

// Ajustar el tamaño de las columnas
foreach (range('A', 'D') as $columnID) {
    $sheet->getColumnDimension($columnID)->setAutoSize(true);
}

// Establecer el encabezado para la descarga de Excel
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="seriales_no_usados.xlsx"');
header('Cache-Control: max-age=0');

// Escribir el archivo Excel al navegador
$writer = new Xlsx($spreadsheet);
$writer->save('php://output');

// Cerrar la conexión a la base de datos
$conn->close();
exit;
?>
