From d1495534e0ebdf015d782a8e4a5fa73fad2034f9 Mon Sep 17 00:00:00 2001 From: imnavajas Date: Tue, 2 Jul 2024 14:07:01 +0200 Subject: [PATCH] Instalada libreria de PHP para Excel y hecho primer ejemplo de creacion de excel. Esta hecho el excel de giros de SK (encabezados + dummy data --- ci4/app/Config/Routes.php | 8 +++ ci4/app/Controllers/Excel/PrintGiros.php | 82 ++++++++++++++++++++++++ 2 files changed, 90 insertions(+) create mode 100644 ci4/app/Controllers/Excel/PrintGiros.php diff --git a/ci4/app/Config/Routes.php b/ci4/app/Config/Routes.php index 9b02775c..5b9bd98c 100644 --- a/ci4/app/Config/Routes.php +++ b/ci4/app/Config/Routes.php @@ -667,6 +667,14 @@ $routes->group( } ); +$routes->group( + 'export-giros', + ['namespace' => 'App\Controllers\Excel'], + function ($routes) { + $routes->get('generar/(:num)', 'PrintGiros::generateExcel/$1', ['as' => 'girosToExcel']); + } +); + $routes->group( 'buscadorpresupuestos', ['namespace' => 'App\Controllers\Presupuestos'], diff --git a/ci4/app/Controllers/Excel/PrintGiros.php b/ci4/app/Controllers/Excel/PrintGiros.php new file mode 100644 index 00000000..faa34f14 --- /dev/null +++ b/ci4/app/Controllers/Excel/PrintGiros.php @@ -0,0 +1,82 @@ +getActiveSheet(); + + // Especificar encabezados + $headers = [ + 'BIC (SWIFT)*', + 'FECHA FIRMA MANDATO*', + 'IBAN*', + 'IMPORTE*', + 'NOMBRE*', + 'PAIS*', + 'REFERENCIA DEL ADEUDO (REFADEUDO)*', + 'REFERENCIA*', + 'REFERENCIA DEL MANDATO (REMANDATO)*', + 'RESIDENTE*', + 'TIPO DE ADEUDO*', + 'FECHA DE COBRO*', + 'DIAS*' + ]; + + // Establecer los encabezados en la primera fila + $column = 'A'; + foreach ($headers as $header) { + $sheet->setCellValue($column . '1', $header); + $column++; + } + + // Generar datos dummy + $dummyData = [ + ['ABCDEF12', '2024-01-01', 'ES1234567890123456789012', 100.50, 'John Doe', 'Spain', 'REF001', '12345', 'MAND001', 'Yes', 'Type1', '2024-02-01', 30], + ['GHIJKL34', '2024-02-01', 'ES9876543210987654321098', 200.75, 'Jane Smith', 'France', 'REF002', '67890', 'MAND002', 'No', 'Type2', '2024-03-01', 60], + // Añade más datos dummy según sea necesario + ]; + + // Rellenar las filas con datos dummy + $rowNumber = 2; // Empezar en la segunda fila + foreach ($dummyData as $row) { + $column = 'A'; + foreach ($row as $cell) { + $sheet->setCellValue($column . $rowNumber, $cell); + $column++; + } + $rowNumber++; + } + + // Ajustar automáticamente el tamaño de las columnas + foreach (range('A', $column) as $col) { + $sheet->getColumnDimension($col)->setAutoSize(true); + } + + // Crear un escritor para guardar el archivo + $writer = new Xlsx($spreadsheet); + + // Configurar la respuesta para descarga + $fileName = 'giros_reporte.xlsx'; + header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); + header('Content-Disposition: attachment;filename="' . $fileName . '"'); + header('Cache-Control: max-age=0'); + + // Escribir el archivo a la salida + $writer->save('php://output'); + exit; + + } + +} \ No newline at end of file