Foros del Web » Programando para Internet » PHP »

php, mysql a excel

Estas en el tema de php, mysql a excel en el foro de PHP en Foros del Web. hola a todos estoy leyendo la forma de generar archivos de excel usando Spreadsheet_Excel_Writer segun busque en mi servidor las librerias y si esta instalado ...
  #1 (permalink)  
Antiguo 26/04/2011, 11:08
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigedad: 17 aos, 8 meses
Puntos: 9
Pregunta php, mysql a excel

hola a todos estoy leyendo la forma de generar archivos de excel usando Spreadsheet_Excel_Writer segun busque en mi servidor las librerias y si esta instalado copie este codigo en una pagina php
Cdigo PHP:
<?php
require_once 'Spreadsheet/Excel/Writer.php';
// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer();
// sending HTTP headers
$workbook->send('test.xls');
// Creating a worksheet
$worksheet =& $workbook->addWorksheet('My first worksheet');
// The actual data
$worksheet->write(00'Name');
$worksheet->write(01'Age');
$worksheet->write(10'John Smith');
$worksheet->write(1130);
$worksheet->write(20'Johann Schmidt');
$worksheet->write(2131);
$worksheet->write(30'Juan Herrera');
$worksheet->write(3132);

// Let's send the file
$workbook->close();
?>
pero al momento de verlo en el sitio me muestra esto
Cdigo:
ࡱ;   l BMy first worksheet=%r8X"1Arial1Arial1Arial1Arial1Arial1 Arial                                  83ffff̙̙3f3̙fff3f3f33333f33333?My first worksheet l *+&?'?(?)?"dXX??  Name Age John Smith>@Johann Schmidt?@ Juan Herrera@@>  Root Entry F**Book  F
espero alguno pueda ayudarme a generar un archivo xls
desde ya gracias
  #2 (permalink)  
Antiguo 26/04/2011, 11:23
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicacin: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigedad: 15 aos, 11 meses
Puntos: 528
Respuesta: php, mysql a excel

Supongo que los garabatos que pones son el contenido del excel, lo cual sería hasta cierto punto normal. No indicas como es que lo "estas viendo en el sitio", lo que deberías hacer es una vez generado el excel ofrecer un link para su descarga.

Últimamente uso phpexcel de codeplex, pero me parece que las instrucciones que usas son correctas, verifica el archivo generado (test.xls) si está bien es que la librería no te está generando correctamente los headers.
  #3 (permalink)  
Antiguo 26/04/2011, 11:25
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicacin: Cancn, Mxico
Mensajes: 231
Antigedad: 18 aos, 7 meses
Puntos: 28
Respuesta: php, mysql a excel

Hola!
Yo utilizo este codigo:
Cdigo PHP:
<?php 
/*
Mysql To Excel
Generacin de excel versin 1.0
Nicols Pardo - 2007
*/
#Conexion a la db
require("../connect.inc");
 
#Sql, ac pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql "
SELECT 
    *
FROM
    xxxx
ORDER BY
    xxxx DESC
"
;
 
//$r = mysql_query( $sql ) or trigger_error( mysql_error($conn), E_USER_ERROR );
$query="select * from xxx order by xxxx ASC";
$connection conect();
$r mysql_query($query$connection) or die(mysql_error());

$return '';
if( 
mysql_num_rows($r)>0){
    
$return .= '<table border=1>';
    
$cols 0;
    while(
$rs mysql_fetch_row($r)){
        
$return .= '<tr>';
        if(
$cols==0){
            
$cols sizeof($rs);
            
$cols_names = array();
            for(
$i=0$i<$cols$i++){
                
$col_name mysql_field_name($r,$i);
                
$return .= '<th>'.htmlspecialchars($col_name).'</th>';
                
$cols_names[$i] = $col_name;
            }
            
$return .= '</tr><tr>';
        }
        for(
$i=0$i<$cols$i++){
            
#En esta iteracin podes manejar de manera personalizada datos, por ejemplo:
            
if($cols_names[$i] == 'fechaAlta'){ #Fromateo el registro en formato Timestamp
                
$return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
            }else if(
$cols_names[$i] == 'activo'){ #Estado lgico del registro, en vez de 1 o 0 le muestro Si o No.
                
$return .= '<td>'.htmlspecialchars$rs[$i]==1'SI':'NO' ).'</td>';
            }else{
                
$return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
            }
        }
        
$return .= '</tr>';
    }
    
$return .= '</table>';
    
mysql_free_result($r);
}
#Cambiando el content-type ms las <table> se pueden exportar formatos como csv
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=Registro_de_Usuarios_".date('d-m-Y').".xls");
echo 
$return;  

?>
Espero que te sirva....

Saludos,
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #4 (permalink)  
Antiguo 26/04/2011, 11:25
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicacin: Cubil felino
Mensajes: 1.652
Antigedad: 16 aos, 1 mes
Puntos: 336
Respuesta: php, mysql a excel

esta bien, solo necesitas agregar el cabezal de ese tipo de archivo (excel)

intenta alguno de estos 2
Cdigo PHP:
Ver original
  1. header('Content-type: application/vnd.ms-excel');
  2. header("Content-Disposition: attachment; filename=archivo.xls");

Cdigo PHP:
Ver original
  1. header('Content-type: application/ms-excel');
  2. header("Content-Disposition: attachment; filename=archivo.xls");

eso debes ponerlo al inicio del código y no debes imprimir texto.
  #5 (permalink)  
Antiguo 26/04/2011, 12:28
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigedad: 17 aos, 8 meses
Puntos: 9
Respuesta: php, mysql a excel

gracias stramin, pablo y ocp001a ya me lo muestra ya logre que me muestre la informacion extraida de una consulta a mysql ahora mi pregunta es como puedo insertar al excel solo la informacion que necesito campos especificos
  #6 (permalink)  
Antiguo 26/04/2011, 12:36
Avatar de stramin  
Fecha de Ingreso: marzo-2008
Ubicacin: Cubil felino
Mensajes: 1.652
Antigedad: 16 aos, 1 mes
Puntos: 336
Respuesta: php, mysql a excel

tendrías que ser mas explicito con, ¿que campos específicos necesitas?
  #7 (permalink)  
Antiguo 27/04/2011, 07:25
Avatar de Pablo Ayala  
Fecha de Ingreso: septiembre-2005
Ubicacin: Cancn, Mxico
Mensajes: 231
Antigedad: 18 aos, 7 meses
Puntos: 28
Respuesta: php, mysql a excel

Sera acaso que no deseas todos los campos de tu tabla de mysql en excel?
Si es asi, entonces debes modificar tu consulta a la base de datos.

Debes ser mas claro en tu pregunta para que podamos responder lo que esperas.

Un saludo!
__________________
Atentamente,

Pablo Ayala.
Si vas a responder algo en el foro que sea con amabilidad.
  #8 (permalink)  
Antiguo 27/04/2011, 15:35
Avatar de saseisa  
Fecha de Ingreso: agosto-2006
Mensajes: 329
Antigedad: 17 aos, 8 meses
Puntos: 9
Respuesta: php, mysql a excel

gracias si era el problema con mi consulta gracias

Etiquetas: excel, mysql
Atencin: Ests leyendo un tema que no tiene actividad desde hace ms 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 18:17.