Ver Mensaje Individual
  #3 (permalink)  
Antiguo 21/08/2013, 16:32
chubse
 
Fecha de Ingreso: marzo-2012
Mensajes: 84
Antigüedad: 12 años, 1 mes
Puntos: 3
Respuesta: Exportar tablas a excel

Como dice abimaelrc lo mejor es usar las librerías establecidas por PHPExcel (las puedes descargar de http://phpexcel.codeplex.com/). Te dejo un ejemplo para exportar a un archivo de excel:

Código PHP:
Ver original
  1. <?php
  2.  
  3. include ("CONEXION_MYSQL.php");
  4.  
  5. //incluye las clases
  6.  
  7. require_once('phpexcel/Classes/PHPExcel.php');
  8. require_once('phpexcel/Classes/PHPExcel/Reader/Excel2007.php');
  9. require_once('phpexcel/Classes/PHPExcel/IOFactory.php');
  10.    
  11.    
  12.     $objPHPExcel = new PHPExcel();
  13.    
  14. //se genera las propiedades del documento y algunos datos sobre autoría
  15.    
  16.     $objPHPExcel->getProperties()->setCreator("MiLista (Bernardo Serrano & Miguel Murguía)")
  17.                              ->setLastModifiedBy("MiLista (Bernardo Serrano & Miguel Murguía)")
  18.                              ->setTitle("Office 2007 XLSX Report Document")
  19.                              ->setSubject("Office 2007 XLSX Report Document")
  20.                              ->setDescription("Report document for Office 2007 XLSX, generated using PHP classes.");
  21.                              
  22. //la seguridad del documento
  23.                              
  24.     $objPHPExcel->getSecurity()->setLockWindows(false)
  25.                                ->setLockStructure(false);
  26.                                
  27. //se toman los datos que serán exportados en el archivo de excel
  28.  
  29. //lista de alumnos con sus respectivos nombres y número de cuenta
  30.  
  31. $gpo= $_SESSION[grupo];
  32. $usuario_gpo=mysql_query("SELECT ID_GRUPO,GRUPO_NUMERO,ESCUELA,MATERIA FROM ml_dat_GRUPO WHERE ID_GRUPO = '".$gpo."'");
  33. $row_gpo = mysql_fetch_row($usuario_gpo);
  34. $nombre_gpo=$row_gpo[0];
  35.  
  36. $mail= $_SESSION[usuario];
  37.  
  38. $result = mysql_query("SELECT MATRICULA,AP_PATERNO,AP_MATERNO,NOMBRE,EMAIL FROM ml_dat_ALUMNO WHERE ID_GRUPO='".$nombre_gpo."' ORDER BY AP_PATERNO ASC ");
  39.            
  40.     $rowNumber = 2;
  41.     while ($row = mysql_fetch_row($result)) {
  42.        $col = 'A';
  43.        foreach($row as $cell) {
  44.           $objPHPExcel->getActiveSheet()->setCellValue($col.$rowNumber,$cell);
  45.           $col++;
  46.        }
  47.        $rowNumber++;
  48.     }
  49.    
  50.  
  51. //nombre de las columnas
  52.    
  53.     $headings = array('MATRICULA', 'AP_PATERNO', 'AP_MATERNO', 'NOMBRE','EMAIL');
  54.    
  55.     $rowNumber3 = 1;
  56.     $col3 = 'A';
  57.     foreach($headings as $heading) {
  58.        $objPHPExcel->getActiveSheet()->setCellValue($col3.$rowNumber3,$heading);
  59.        $col3++;
  60.     }
  61.    
  62.            
  63.            
  64. // Se modifican los encabezados del HTTP para indicar que se envia un archivo de Excel.            
  65.    
  66.     header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
  67.     header('Content-Disposition: attachment;filename="rep_alumnos.xlsx"');
  68.     header('Cache-Control: max-age=0');
  69.  
  70. //Creamos el Archivo .xlsx
  71.    
  72.     $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel2007');
  73.     $objWriter->save('php://output');
  74.  
  75. ?>