Foros del Web » Programando para Internet » PHP »

PHP -> Excel

Estas en el tema de PHP -> Excel en el foro de PHP en Foros del Web. Hola todos e aqui la manera de guardar datos en excel: Código PHP: //Cabeceras:      header ( "Content-type: application/octet-stream" );       header ( "Content-Disposition: attachment; filename=archivo.xls" );       ...
  #1 (permalink)  
Antiguo 26/04/2007, 03:02
Avatar de ZiTAL  
Fecha de Ingreso: marzo-2004
Ubicación: Bermio (Bizkaia)
Mensajes: 1.545
Antigüedad: 20 años, 2 meses
Puntos: 62
PHP -> Excel

Hola todos e aqui la manera de guardar datos en excel:

Código PHP:
//Cabeceras:
    
header("Content-type: application/octet-stream"); 
    
header("Content-Disposition: attachment; filename=archivo.xls"); 
    
header("Pragma: no-cache"); 
    
header("Expires: 0"); 
//A escribir ;)
    
echo "Nº factura \t Fecha \t Nombre \t Forma de pago \t Precio Neto \t Portes \t IVA \t € F.P. \t Total \r\n";    
    echo 
"---------- \t ----- \t ------ \t ------------- \t ----------- \t ------ \t --- \t ------ \t ----- \r\n"
De celda en celda va por tabulaciones \t y de linea en linea \r\n

Espero que os sirva.

Sacado de apgDB2xls, Alvaro Prieto (apg88)
E-Mail: [email protected]

;)
__________________
http://zital.no-ip.org
____________________

Euskerie ahuen eta bijotzan
  #2 (permalink)  
Antiguo 04/05/2007, 12:26
 
Fecha de Ingreso: mayo-2007
Mensajes: 5
Antigüedad: 17 años
Puntos: 0
Re: PHP -> Excel

excelente justo necesitaba hacer eso gracias, si tienes un enlace o un codigo de un ejemplo completo te lo agradecería que lo pases.
saludos
  #3 (permalink)  
Antiguo 04/05/2007, 14:15
Avatar de ZydRick  
Fecha de Ingreso: febrero-2005
Ubicación: Lima
Mensajes: 750
Antigüedad: 19 años, 3 meses
Puntos: 4
Re: PHP -> Excel

He probado dicho script y me di cuenta que no respeta los saltos de línea para pasar a la siguiente fila, hace tiempo(no recuerdo donde) encontré este script que hace lo mismo y fácil de entender y usarlo sobretodo para consultas a mysql o cualquier otro tipo de bases de datos.

Código PHP:
<?php
    $shtml
="<table style='width:100%;'>";
    
$shtml=$shtml."<tr>";
    
$shtml=$shtml."<td style='width: 50px;'>Id</td><td>Codigo</td><td>US$</td>";
    
$shtml=$shtml."</tr>";
    
$shtml=$shtml."<tr>";
    
$shtml=$shtml."<td>1</td><td>C4325</td><td>2000.00</td>";
    
$shtml=$shtml."</tr>";
    
$shtml=$shtml."<tr>";
    
$shtml=$shtml."<td>2</td><td>DX456</td><td>1000.00</td>";
    
$shtml=$shtml."</tr>";
    
$shtml=$shtml."<tr>";
    
$shtml=$shtml."<td>3</td><td>&nbsp;</td><td>-50.00</td>";
    
$shtml=$shtml."</tr>";
    
$shtml=$shtml."<tr>";
    
$shtml=$shtml."<td>4</td><td>A18-TG</td><td>20.64</td>";
    
$shtml=$shtml."</tr>";
    
$shtml=$shtml."</table>";
    
$scarpeta="extras/"//carpeta donde guardar el archivo.
    //debe tener permisos 775 por lo menos
    
$sfile=$scarpeta."prueba.xls"//ruta del archivo a generar
    
$fp=fopen($sfile,"w");
    
fwrite($fp,$shtml);
    
fclose($fp);
    echo 
"<a href='".$sfile."'>Haz click aqui</a>";
?>
Espero que les sirva
  #4 (permalink)  
Antiguo 04/05/2007, 20:21
Avatar de nicolaspar  
Fecha de Ingreso: noviembre-2004
Ubicación: Villa Ballester Bs-As|Ar
Mensajes: 2.002
Antigüedad: 19 años, 5 meses
Puntos: 34
Re: PHP -> Excel

Para pequeñas tablas estoy usando el siguiente, en su versión 1.0:
Código PHP:
require_once('__conn.php');
$r mysql_query('SELECT * FROM usuarios WHERE activo > -1 ORDER BY codigo DESC') or trigger_errormysql_error($conn), E_USER_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 count($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++){
            if(
$cols_names[$i] == 'fechasys'){
                
$return .= '<td>'.htmlspecialchars(date('d/m/Y H:i:s',$rs[$i])).'</td>';
            }else if(
$cols_names[$i] == 'activo'){
                
$return .= '<td>'.htmlspecialchars$rs[$i]==1'SI':'NO' ).'</td>';
            }else{
                
$return .= '<td>'.htmlspecialchars($rs[$i]).'</td>';
            }
        }
        
$return .= '</tr>';
    }
    
$return .= '</table>';
    
mysql_free_result($r);
}
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=Usuarios_".date('d-m-Y').".xls");
echo 
$return
Totalmente adaptable con solo cambiar el query.
__________________
Mi punto de partida es Que Bueno Lo Nuevo
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 18:25.