File "excelInventa.php.bak"

Full Path: C:/wamp64/www/APPSST/Admin/excelInventa.php.bak
File size: 2.65 KB
MIME-type: text/x-php
Charset: utf-8

<?php
require '../vendor/autoload.php'; // Asegúrate de que PHPSpreadsheet esté instalado
include("../bd/conexion.php");

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

// Crear un nuevo objeto de hoja de cálculo
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();

// Establecer el encabezado de la tabla
$sheet->setCellValue('A1', 'ID');
$sheet->setCellValue('B1', 'CODIGO');
$sheet->setCellValue('C1', 'DESCRIPCION');
$sheet->setCellValue('D1', 'CANTIDAD');

// Aplicar estilo al encabezado
$headerStyle = [
    'font' => [
        'bold' => true,
        'color' => ['rgb' => 'FFFFFF'],
    ],
    'fill' => [
        'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_SOLID,
        'startColor' => ['rgb' => 'FF8A37'],
    ],
    'alignment' => [
        'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
        'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
    ],
];

$sheet->getStyle('A1:D1')->applyFromArray($headerStyle);

// Obtener los datos de la base de datos
$consulta_inventario = $conexion->query("SELECT ID, CODIGO, DESCRIPCION, CANTIDAD FROM inventario");

if ($consulta_inventario->num_rows > 0) {
    $row = 2; // Comienza en la segunda fila
    while ($fila_inventario = $consulta_inventario->fetch_assoc()) {
        $sheet->setCellValue('A' . $row, $fila_inventario['ID']);
        $sheet->setCellValue('B' . $row, $fila_inventario['CODIGO']);
        $sheet->setCellValue('C' . $row, $fila_inventario['DESCRIPCION']);
        $sheet->setCellValue('D' . $row, $fila_inventario['CANTIDAD']);
        $row++;
    }
}

// Establecer el estilo de las celdas con bordes
$cellStyle = [
    'borders' => [
        'allBorders' => [
            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
            'color' => ['argb' => '000000'],
        ],
    ],
    'alignment' => [
        'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_CENTER,
        'vertical' => \PhpOffice\PhpSpreadsheet\Style\Alignment::VERTICAL_CENTER,
    ],
];

$sheet->getStyle('A1:D' . ($row - 1))->applyFromArray($cellStyle);

// Ajustar automáticamente el ancho de las columnas
foreach (range('A', 'D') as $columnID) {
    $sheet->getColumnDimension($columnID)->setAutoSize(true);
}

// Crear el archivo Excel y forzar su descarga
$writer = new Xlsx($spreadsheet);

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="Inventario.xlsx"');
$writer->save('php://output');
exit;
?>