<?php
require 'composer/vendor/autoload.php'; // Ajusta la ubicación según tu configuración

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

function str_putcsv($input, $delimiter = ';', $enclosure = '"'){
	// Open a memory "file" for read/write...
	$fp = fopen('php://temp', 'r+');
	// ... write the $input array to the "file" using fputcsv()...
	fprintf($fp, chr(0xEF).chr(0xBB).chr(0xBF));
	fputcsv($fp, $input, $delimiter, $enclosure);
	// ... rewind the "file" so we can read what we just wrote...
	rewind($fp);
	// ... read the entire line into a variable...
	$data = fread($fp, 1048576);
	// ... close the "file"...
	fclose($fp);
	// ... and return the $data to the caller, with the trailing newline from fgets() removed.
	return rtrim($data, "\n");
}
$nombre_archivo = 'reporte_excel.xlsx';
$nombreArchivoCsv = 'reporte_csv.csv';
if (isset($_POST["nombre_archivo"])){
	$nombre_archivo = $_POST["nombre_archivo"];
}
$spreadsheet = new Spreadsheet();
$worksheet = $spreadsheet->getActiveSheet();
$datos = json_decode($_POST["tabla"]);
$texto = "";
for ($indice=0; $indice<count($datos); $indice++){
	if ($indice > 0 ){
		$texto = $texto . "\n";
	}
	$row = $datos[$indice];
	$texto = $texto . str_putcsv($row);
}
$file = fopen("archivos/".$nombreArchivoCsv, "w");
fwrite($file, $texto . PHP_EOL);
fclose($file);
header('Content-Type: application/vnd.ms-excel');//PARA EXCEL5
//header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$nombre_archivo.'"');
header('Cache-Control: max-age=0');
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader('Csv');
$objPHPExcel = $reader->load("archivos/".$nombreArchivoCsv);
$objWriter = \PhpOffice\PhpSpreadsheet\IOFactory::createWriter($objPHPExcel, 'Xlsx');
$objWriter->save('php://output');
?>		
