File "excelInventa.php.bak"
Full Path: C:/wamp64/www/APPSST/invenconsul/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;
?>