Foros del Web » Programando para Internet » PHP »

Exportar tablas a excel

Estas en el tema de Exportar tablas a excel en el foro de PHP en Foros del Web. Crodial saludo alguien quien me pueda ayudar con este tema. Quiero exportar mis tablas en mysql a excel, lo que quiero es que desde el ...
  #1 (permalink)  
Antiguo 21/08/2013, 09:49
 
Fecha de Ingreso: agosto-2008
Mensajes: 168
Antigüedad: 15 años, 7 meses
Puntos: 0
Exportar tablas a excel

Crodial saludo alguien quien me pueda ayudar con este tema.
Quiero exportar mis tablas en mysql a excel, lo que quiero es que desde el menu desplegable se seleccione la tabla que quiero descargar. Actualmente al ejecutar el codigo simplemente no hace nada se queda pensando, lueego que le mando una vairable por POST que es $tabla y que es como se llama el select. Este es el codigo gracias.
Código PHP:
<?php 
header
("Content-type: application/vnd.ms-excel" ) ; 
header("Content-Disposition: attachment; filename=archivo.xls" ) ; 
//en la sigte linea colocar entre comillas el nombre del servidor mysql (generalmente, localhost) 
$servidor="localhost"
//en la sigte linea colocar entre comillas el nombre de usuario 
$user="root"
//en la sigte linea colocar entre comillas la contraseña 
$pass=""
//en la sigte linea colocar entre comillas e nombre de la base de datos 
$db="bd_cth"
//en la sigte linea colocar entre comillas e nombre de la tabla
$tabla=$_POST["tabla"];  
mysql_connect($servidor,$user,$pass) ; 
mysql_select_db($db) ; 
$qry=mysql_query("select * from $tabla" ) ; 
$campos mysql_num_fields($qry) ; 
$i=0
echo 
"<table><tr>"
while(
$i<$campos){ 
echo 
"<td>"mysql_field_name ($qry$i) ; 
echo 
"</td>"
$i++; 

echo 
"</tr>"
while(
$row=mysql_fetch_array($qry)){ 
echo 
"<tr>"
for(
$j=0$j<$campos$j++) { 
echo 
"<td>".$row[$j]."</td>"

echo 
"</tr>"

echo 
"</table>"
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documento sin título</title>
</head>

<body>
</body>
</html>
  #2 (permalink)  
Antiguo 21/08/2013, 15:59
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Exportar tablas a excel

Si vas a exportar a excel te recomiendo el uso de alguna librería que te ayude a formar el binario, si lo que quieres es que el usuario pueda exportar la data, puedes usar csv que excel tiene la capacidad de leer este formato (que simplemente es un texto plano).

Si aún quieres exportar a excel, puedes tratar PHPExcel o hay otros que puedes buscar por internet. Para saber como usarlo solo es cuestión de leer la documentación que ellos brindan y probar los ejemplos.
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 21/08/2013, 16:32
 
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. ?>

Etiquetas: excel, html, mysql, select, sql, tabla, tablas
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 04:03.