SHARE
TWEET

Untitled

a guest Feb 19th, 2019 66 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <form action="exportar.php" method="POST">
  2.         <div class="form-row">
  3.            <div class="col">
  4.              <input type="date" name="fecha" class="form-control" value="<?php echo date('Y-m-d') ?>">
  5.           </div>
  6.           <div class="col">
  7.              <input type="date" name="fecha2" class="form-control" value="<?php echo date('Y-m-d') ?>">
  8.           </div>
  9.        </div>
  10.        <div class="form-row">
  11.          <div class="col">
  12.               <input type="submit" class="btn form-control" value="Generar reporte en Excel" name="generar">
  13.         </div>
  14.    </div>
  15. </form>
  16.      
  17. $generar = isset($_POST['generar']) ? $_POST['generar'] : NULL;
  18.  
  19.     if(!empty($generar)){
  20.  
  21.         setlocale(LC_TIME, 'spanish');
  22.  
  23.         $fecha = isset($_POST['fecha']) ? $_POST['fecha'] : NULL;
  24.         $fecha2 = isset($_POST['fecha2']) ? $_POST['fecha2'] : NULL;
  25.  
  26.         $nueva_fecha = new DateTime($fecha);
  27.         $date=$nueva_fecha->format('d-m-Y');
  28.  
  29.         $nueva_fecha = new DateTime($fecha2);
  30.         $date2=$nueva_fecha->format('d-m-Y');
  31.  
  32.         // Redirigir la salida al navegador web de un cliente ( Excel5 )
  33.         header('Content-Type: application/vnd.ms-excel');
  34.         header('Content-Disposition: attachment;filename="reporte-marcaje.xls"');
  35.         header('Cache-Control: max-age=0');
  36.         // Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
  37.         header('Cache-Control: max-age=1');
  38.  
  39.         // Si usted está sirviendo a IE a través de SSL , a continuación, puede ser necesaria la siguiente
  40.         header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  41.         header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  42.         header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  43.         header ('Pragma: public'); // HTTP/1.0
  44.  
  45.         if (PHP_SAPI == 'cli')
  46.             die('Este ejemplo sólo se puede ejecutar desde un navegador Web');
  47.  
  48.         /** Incluye PHPExcel */
  49.         require_once dirname(__FILE__) . '/Classes/PHPExcel.php';
  50.         // Crear nuevo objeto PHPExcel
  51.         $objPHPExcel = new PHPExcel();
  52.  
  53.         // Propiedades del documento
  54.         $objPHPExcel->getProperties()->setCreator("Planificacion Financiera")
  55.                                      ->setLastModifiedBy("Planificacion Financiera")
  56.                                      ->setTitle("Planificacion Financiera")
  57.                                      ->setSubject("Planificacion Financiera")
  58.                                      ->setDescription("Planificacion Financiera")
  59.                                      ->setKeywords("Planificacion Financiera")
  60.                                      ->setCategory("Planificacion Financiera");
  61.  
  62.  
  63.  
  64.         // Combino las celdas desde A1 hasta F1
  65.         $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:F1');
  66.  
  67.         $objPHPExcel->setActiveSheetIndex(0)
  68.                     ->setCellValue('A1', 'MARCAJE')
  69.                     ->setCellValue('A2', 'FECHA')
  70.                     ->setCellValue('B2', 'NUMERO DE CUENTA')
  71.                     ->setCellValue('C2', 'NOMBRE CLIENTE')
  72.                     ->setCellValue('D2', 'CANAL')
  73.                     ->setCellValue('E2', 'ALIADO')
  74.                     ->setCellValue('F2', 'GERENTE');
  75.  
  76.         // Fuente de la primera fila en negrita
  77.         $boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));
  78.  
  79.         $objPHPExcel->getActiveSheet()->getStyle('A1:F2')->applyFromArray($boldArray);      
  80.  
  81.         //Ancho de las columnas
  82.         $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(15);  
  83.         $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(25);  
  84.         $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(100);
  85.         $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(50);  
  86.         $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(50);          
  87.         $objPHPExcel->getActiveSheet()->getColumnDimension('F')->setWidth(50);          
  88.  
  89.         /*Extraer datos de MYSQL*/
  90.             # conectare la base de datos
  91.             $conn = new PDO('oci:dbname=192.168.1.95:1521/orcl;charset=UTF8', 'bi_src', 'bi_src');
  92.  
  93.             if(!$conn){
  94.                 die("imposible conectarse con la base de datos Oracle.");
  95.             }
  96.  
  97.             $stid = $conn->prepare("SELECT * FROM
  98.             (SELECT
  99.                                     M000.FULTACT000,
  100.                                     M000.NBCLI000,
  101.                                     M000.G300CTA,
  102.                                     (SELECT C000.NCNL000 FROM BI_SRC.CNLF000 C000 WHERE C000.CUUID000 = M000.CUUID000) AS CANAL,
  103.                                     (SELECT NALDF000 FROM BI_SRC.ALDF000 WHERE IDALDF000 = M000.IDALDF000) AS ALIADO,
  104.                                     (SELECT NBUSUF000 FROM BI_SRC.USEJE000 WHERE UIDEJE000 = M000.UIDEJE000) AS GERENTE
  105.  
  106.                                     FROM BI_SRC.MRCJ000 M00
  107.                                     WHERE M000.FULTACT000 BETWEEN :date AND :date2
  108.             ORDER BY M000.MRCJID000 DESC ) WHERE ROWNUM <= 150");
  109.  
  110.             $stid->bindValue(":date", $date, PDO::PARAM_STR);
  111.             $stid->bindValue(":date2", $date2, PDO::PARAM_STR);
  112.  
  113.             $stid->execute();
  114.             $resultado = $stid->fetchAll();
  115.  
  116.             $cel = 3; //Numero de fila donde empezara a crear  el reporte
  117.  
  118.             foreach($resultado as $row){
  119.                 $fecha = $row['FULTACT000'];
  120.                 $cliente = $row['NBCLI000'];
  121.                 $cuenta = $row['G300CTA'];
  122.                 $canal = $row['CANAL'];
  123.                 $aliado = $row['ALIADO'];
  124.                 $gerente = $row['GERENTE'];
  125.  
  126.                 $a="A" . $cel;
  127.                 $b="B" . $cel;
  128.                 $c="C" . $cel;
  129.                 $d="D" . $cel;
  130.                 $e="E" . $cel;
  131.                 $f="F" . $cel;
  132.  
  133.                 // Agregar datos
  134.                 $objPHPExcel->setActiveSheetIndex(0)
  135.                 ->setCellValue($a, $fecha)
  136.                 ->setCellValue($b, $cuenta)
  137.                 ->setCellValue($c, $cliente)
  138.                 ->setCellValue($d, $canal)
  139.                 ->setCellValue($e, $aliado)
  140.                 ->setCellValue($f, $gerente);
  141.  
  142.                 $cel+=1;
  143.             }
  144.  
  145.         /*Fin extracion de datos MYSQL*/
  146.         $rango="A1:$e";
  147.         $styleArray = array('font' => array( 'name' => 'Century Gothic','size' => 10),
  148.         'borders'=>array('allborders'=>array('style'=> PHPExcel_Style_Border::BORDER_THIN,'color'=>array('argb' => 'FFF')))
  149.         );
  150.         $objPHPExcel->getActiveSheet()->getStyle($rango)->applyFromArray($styleArray);
  151.         // Cambiar el nombre de hoja de cálculo
  152.         $objPHPExcel->getActiveSheet()->setTitle('Reporte-Marcaje');
  153.  
  154.  
  155.         // Establecer índice de hoja activa a la primera hoja , por lo que Excel abre esto como la primera hoja
  156.         $objPHPExcel->setActiveSheetIndex(0);
  157.  
  158.         $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  159.         $objWriter->save('php://output');
  160.         exit;
  161.     }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top