how to filter a download of a file by date?

1
  

index.php

    <!DOCTYPE html>
     <meta charset="utf-8" />
    <title>generando RIPS...</title>
    </head>
    <body>
    <div>
    <h1>Registros Individuales de Prestación de Servicios de Salud</h1>
         <div>
    <label>Desde:</label>
    <input type = "text" class = "form-control" placeholder = "Inicio"  id = "date1"/>
    <label>Hasta</label>
    <input type = "text" class = "form-control" placeholder = "Final"  id = "date2"/>
               <a href="exportar.php"> Generar reporte de servicios</a>
     <p>Exportar a Excel  <img src="export_to_excel.gif" class="botonExcel" /></p>
    </div>
    </div>
    </body>
</html>

> exportar.php

    <?php
    <?php
$date1 = date("Y-m-d", strtotime($_POST['date1']));
$date2 = date("Y-m-d", strtotime($_POST['date2']));

if (!empty($_POST['date1']) and  !empty($_POST['date1'])){
    list($dia,$mes,$anio)=explode("/",$_POST['date1']);
    $date1="$anio-$mes-$dia";
    list($dia,$mes,$anio)=explode("/",$_POST['date2']);
    $date2="$anio-$mes-$dia";

    $sWhere="WHERE 'fecha_Solicitud' BETWEEN '$date1' AND '$date2'";

} else {
    $sWhere=""; 
}

if (PHP_SAPI == 'cli')
    die('Este codigo sólo se puede ejecutar desde un navegador Web');

/** Incluye PHPExcel */
require_once 'Classes/PHPExcel.php';
// Crear nuevo objeto PHPExcel
$objPHPExcel = new PHPExcel();

// Propiedades del documento
$objPHPExcel->getProperties()->setCreator("Trujii")
                             ->setLastModifiedBy("Trujii")
                             ->setTitle("Office 2010 XLSX Documento de prueba")
                             ->setSubject("Office 2010 XLSX Documento de prueba")
                             ->setDescription("Documento de prueba para Office 2010 XLSX, generado usando clases de PHP.")
                             ->setKeywords("office 2010 openxml php")
                             ->setCategory("Archivo con resultado de prueba");



// Combino las celdas desde A1 hasta E1
$objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:AZ1');

$objPHPExcel->setActiveSheetIndex(0)

            ->setCellValue('A2', 'SERVICIO N°')
            ->setCellValue('B2', 'SITUACIÓN')
            ->setCellValue('C2', 'TIPO DE AMBULANCIA')
            ->setCellValue('D2', 'TIPO DE TRASLADO')
            ->setCellValue('E2', 'PERIMETRO')
            ->setCellValue('F2', 'HORARIO')
            ->setCellValue('G2', 'MOVIL')
            ->setCellValue('H2', 'CLIENTE')



// Fuente de la primera fila en negrita
$boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));

$objPHPExcel->getActiveSheet()->getStyle('A1:AZ2')->applyFromArray($boldArray);     



//Ancho de las columnas
$objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(10);  
$objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);  
$objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(25);  
$objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(30);  
$objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(35);
$objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('G')->setWidth(30);
$objPHPExcel->getActiveSheet()->getColumnDimension('H')->setWidth(30);


/*Extraer datos de MYSQL*/
    # conectare la base de datos
    $con=@mysqli_connect('localhost', 'root', 'admin123', 'database');
    if(!$con){
        die("imposible conectarse: ".mysqli_error($con));
    }
    if (@mysqli_connect_errno()) {
        die("Connect failed: ".mysqli_connect_errno()." : ". mysqli_connect_error());
    }
    $sql="SELECT * FROM 'servicio' $sWhere order by servicio_No";
    $query=mysqli_query($con,$sql);
    $cel=3;//Numero de fila donde empezara a crear  el reporte
    while ($row=mysqli_fetch_array($query)){

        $servicio_No=$row['servicio_No'];
        $situacion=$row['situacion'];
        $tipo_Ambulancia=$row['tipo_Ambulancia'];
        $tipo_Traslado=$row['tipo_Traslado'];
        $zona=$row['zona'];
        $horario=$row['horario'];
        $movil=$row['movil'];
        $cliente=$row['cliente'];




            $a="A".$cel;
            $b="B".$cel;
            $c="C".$cel;
            $d="D".$cel;
            $e="E".$cel;
            $f="F".$cel;
            $g="G".$cel;
            $h="H".$cel;



            // Agregar datos
            $objPHPExcel->setActiveSheetIndex(0)                         
            ->setCellValue($a, $servicio_No)
            ->setCellValue($b, $situacion)
            ->setCellValue($c, $tipo_Ambulancia)
            ->setCellValue($d, $tipo_Traslado)
            ->setCellValue($e, $zona)
            ->setCellValue($f, $horario)
            ->setCellValue($g, $movil)
            ->setCellValue($h, $cliente);



    $cel+=1;
    }

/*Fin extracion de datos MYSQL*/
$rango="A2:$az";
$styleArray = array('font' => array( 'name' => 'Arial','size' => 10),
'borders'=>array('allborders'=>array('style'=> PHPExcel_Style_Border::BORDER_THIN,'color'=>array('argb' => 'FFF')))
);
$objPHPExcel->getActiveSheet()->getStyle($rango)->applyFromArray($styleArray);
// Cambiar el nombre de hoja de cálculo
$objPHPExcel->getActiveSheet()->setTitle('Reporte de servicios');


// Establecer índice de hoja activa a la primera hoja , por lo que Excel abre esto como la primera hoja
$objPHPExcel->setActiveSheetIndex(0);


// Redirigir la salida al navegador web de un cliente ( Excel5 )
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="reporte.xls"');
header('Cache-Control: max-age=0');
// Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
header('Cache-Control: max-age=1');

// Si usted está sirviendo a IE a través de SSL , a continuación, puede ser necesaria la siguiente
header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header ('Pragma: public'); // HTTP/1.0

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
$objWriter->save('php://output');
exit;
?>
    
asked by cristian trujillo 25.07.2018 в 17:19
source

1 answer

0

You have to create 1 form and the input you must set the attribute "name" to be able to send them by POST pressing the button (since you are receiving them in your exportar.php)

Test:

<!DOCTYPE html>
<meta charset="utf-8" />
<title>generando RIPS...</title>
</head>
<body>
<div>
<form method="POST" action="exportar.php">
    <h1>Registros Individuales de Prestación de Servicios de Salud</h1>
    <div>
        <label>Desde:</label>
        <input type = "text" class = "form-control" placeholder = "Inicio"  name="date1" id="date1"/>
        <label>Hasta</label>
        <input type = "text" class = "form-control" placeholder = "Final"  name="date2" id="date2"/>
        <button>Exportar a excel</button>
        <img src="export_to_excel.gif" class="botonExcel" />
    </div>
</form>
</div>
</body>
</html>
    
answered by 29.07.2018 в 05:36