Advertisement
Guest User

Untitled

a guest
Jun 25th, 2019
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.46 KB | None | 0 0
  1. CREATE TABLE IF NOT EXISTS `countries` (
  2.  
  3. INSERT INTO `countries` (`id`, `countryCode`, `countryName`, `currencyCode`, `capital`, `continentName`) VALUES
  4. (1, 'AD', 'Andorra', 'EUR', 'Andorra la Vella', 'Europe'),
  5. (2, 'AE', 'United Arab Emirates', 'AED', 'Abu Dhabi', 'Asia'),
  6. (3, 'AF', 'Afghanistan', 'AFN', 'Kabul', 'Asia'),
  7. (4, 'AG', 'Antigua and Barbuda', 'XCD', 'St. John''s', 'North America'),
  8. (5, 'AI', 'Anguilla', 'XCD', 'The Valley', 'North America'),
  9. (6, 'AL', 'Albania', 'ALL', 'Tirana', 'Europe'),
  10. (7, 'AM', 'Armenia', 'AMD', 'Yerevan', 'Asia'),
  11. (8, 'AO', 'Angola', 'AOA', 'Luanda', 'Africa'),
  12. (9, 'AQ', 'Antarctica', '', '', 'Antarctica'),
  13. (10, 'AR', 'Argentina', 'ARS', 'Buenos Aires', 'South America'),
  14.  
  15. ALTER TABLE `countries`
  16. ADD PRIMARY KEY (`id`);
  17.  
  18. <!DOCTYPE html>
  19. <html>
  20. <head>
  21. <meta charset="utf-8" />
  22. <title>Reporte de excel con PHP y MySQL</title>
  23. </head>
  24. <body>
  25. <div>
  26. <h1>REPORTE DE EXCEL CON PHP Y MYSQL</h1>
  27. <div>
  28. <a href="exportar.php"> Generar reporte en Excel</a>
  29. </div>
  30. </div>
  31. </body>
  32. </html>
  33.  
  34. <?php
  35. if (PHP_SAPI == 'cli')
  36. die('Este ejemplo sólo se puede ejecutar desde un navegador Web');
  37.  
  38. /** Incluye PHPExcel */
  39. require_once 'Librerias/Classes/PHPExcel.php';
  40. // Crear nuevo objeto PHPExcel
  41. $objPHPExcel = new PHPExcel();
  42.  
  43. // Propiedades del documento
  44. $objPHPExcel->getProperties()->setCreator("Obed Alvarado")
  45. ->setLastModifiedBy("Obed Alvarado")
  46. ->setTitle("Office 2010 XLSX Documento de prueba")
  47. ->setSubject("Office 2010 XLSX Documento de prueba")
  48. ->setDescription("Documento de prueba para Office 2010 XLSX, generado usando clases de PHP.")
  49. ->setKeywords("office 2010 openxml php")
  50. ->setCategory("Archivo con resultado de prueba");
  51.  
  52.  
  53.  
  54. // Combino las celdas desde A1 hasta E1
  55. $objPHPExcel->setActiveSheetIndex(0)->mergeCells('A1:E1');
  56.  
  57. $objPHPExcel->setActiveSheetIndex(0)
  58. ->setCellValue('A1', 'REPORTE DE PAISES')
  59. ->setCellValue('A2', 'CODIGO')
  60. ->setCellValue('B2', 'NOMBRE')
  61. ->setCellValue('C2', 'MONEDA')
  62. ->setCellValue('D2', 'CAPITAL')
  63. ->setCellValue('E2', 'CONTINENTE');
  64.  
  65. // Fuente de la primera fila en negrita
  66. $boldArray = array('font' => array('bold' => true,),'alignment' => array('horizontal' => PHPExcel_Style_Alignment::HORIZONTAL_CENTER));
  67.  
  68. $objPHPExcel->getActiveSheet()->getStyle('A1:E2')->applyFromArray($boldArray);
  69.  
  70.  
  71.  
  72. //Ancho de las columnas
  73. $objPHPExcel->getActiveSheet()->getColumnDimension('A')->setWidth(8);
  74. $objPHPExcel->getActiveSheet()->getColumnDimension('B')->setWidth(30);
  75. $objPHPExcel->getActiveSheet()->getColumnDimension('C')->setWidth(15);
  76. $objPHPExcel->getActiveSheet()->getColumnDimension('D')->setWidth(20);
  77. $objPHPExcel->getActiveSheet()->getColumnDimension('E')->setWidth(15);
  78.  
  79. /*Extraer datos de MYSQL*/
  80. # conectare la base de datos
  81. $con=@mysqli_connect('localhost', 'root', 'pass', 'test');
  82. if(!$con){
  83. die("imposible conectarse: ".mysqli_error($con));
  84. }
  85. if (@mysqli_connect_errno()) {
  86. die("Connect failed: ".mysqli_connect_errno()." : ". mysqli_connect_error());
  87. }
  88. $sql="SELECT * FROM countries order by countryName";
  89. $query=mysqli_query($con,$sql);
  90. $cel=3;//Numero de fila donde empezara a crear el reporte
  91. while ($row=mysqli_fetch_array($query)){
  92. $countryCode=$row['countryCode'];
  93. $countryName=$row['countryName'];
  94. $currencyCode=$row['currencyCode'];
  95. $capital=$row['capital'];
  96. $continentName=$row['continentName'];
  97.  
  98. $a="A".$cel;
  99. $b="B".$cel;
  100. $c="C".$cel;
  101. $d="D".$cel;
  102. $e="E".$cel;
  103. // Agregar datos
  104. $objPHPExcel->setActiveSheetIndex(0)
  105. ->setCellValue($a, $countryCode)
  106. ->setCellValue($b, $countryName)
  107. ->setCellValue($c, $currencyCode)
  108. ->setCellValue($d, $capital)
  109. ->setCellValue($e, $continentName);
  110.  
  111. $cel+=1;
  112. }
  113.  
  114. /*Fin extracion de datos MYSQL*/
  115. $rango="A2:$e";
  116. $styleArray = array('font' => array( 'name' => 'Arial','size' => 10),
  117. 'borders'=>array('allborders'=>array('style'=> PHPExcel_Style_Border::BORDER_THIN,'color'=>array('argb' => 'FFF')))
  118. );
  119. $objPHPExcel->getActiveSheet()->getStyle($rango)->applyFromArray($styleArray);
  120. // Cambiar el nombre de hoja de cálculo
  121. $objPHPExcel->getActiveSheet()->setTitle('Reporte de paises');
  122.  
  123.  
  124. // Establecer índice de hoja activa a la primera hoja , por lo que Excel abre esto como la primera hoja
  125. $objPHPExcel->setActiveSheetIndex(0);
  126.  
  127.  
  128. // Redirigir la salida al navegador web de un cliente ( Excel5 )
  129. header('Content-Type: application/vnd.ms-excel');
  130. header('Content-Disposition: attachment;filename="reporte.xls"');
  131. header('Cache-Control: max-age=0');
  132. // Si usted está sirviendo a IE 9 , a continuación, puede ser necesaria la siguiente
  133. header('Cache-Control: max-age=1');
  134.  
  135. // Si usted está sirviendo a IE a través de SSL , a continuación, puede ser necesaria la siguiente
  136. header ('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
  137. header ('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT'); // always modified
  138. header ('Cache-Control: cache, must-revalidate'); // HTTP/1.1
  139. header ('Pragma: public'); // HTTP/1.0
  140.  
  141. $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
  142. $objWriter->save('php://output');
  143. exit;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement