Foros del Web » Programando para Internet » PHP »

Encabezado personalizado en archivo exportado de excel

Estas en el tema de Encabezado personalizado en archivo exportado de excel en el foro de PHP en Foros del Web. hola a todos Estoy tratando de hacer un reporte que extrae todos los datos de mi tabla, pero lo que quiero es que los encabezados ...
  #1 (permalink)  
Antiguo 04/01/2010, 16:00
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Pregunta Encabezado personalizado en archivo exportado de excel

hola a todos

Estoy tratando de hacer un reporte que extrae todos los datos de mi tabla, pero lo que quiero es que los encabezados de las filas sean personalizados(que yo los defina) y que no ponga el titulo de mis filas. pero no se bien como es que tengo que hacerlo.

Tengo este código que es con el que exporto a excel

Código PHP:
<?
 
include("../db.php"); // archivo de conexión a base de datos
/*
Mysql To Excel
Generación de excel versión 1.0
*/
 
#Sql, acá pone tu consulta a la tabla que necesites exportar filtrando los datos que creas necesarios.
$sql "SELECT * FROM photo_order ORDER BY numero_orden"
$r mysql_query$sql ) 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 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 iteración 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 lógico 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 más las <table> se pueden exportar formatos como csv
header("Content-type: application/vnd-ms-excel; charset=iso-8859-1");
header("Content-Disposition: attachment; filename=photo_order_report.xls");
echo 
$return;
?>
alguien ,me puede ayudar o orientarme como e que tengo que hacerlo?
  #2 (permalink)  
Antiguo 04/01/2010, 16:39
Diegotopet
Invitado
 
Mensajes: n/a
Puntos:
Exclamación Respuesta: Encabezado personalizado en archivo exportado de excel

alguien que me pueda ayudar please....
  #3 (permalink)  
Antiguo 04/01/2010, 16:50
Avatar de pateketrueke
Modernizr
 
Fecha de Ingreso: abril-2008
Ubicación: Mexihco-Tenochtitlan
Mensajes: 26.399
Antigüedad: 16 años
Puntos: 2534
Respuesta: Encabezado personalizado en archivo exportado de excel

hola, es muy sencillo...

primero define tu array() con los nombres de columnas, y los nombres reales a utilizar
Código PHP:
$heads = array(
  
'id' => 'ID',
  
'nick' => 'Nickname',
  
'pass' => 'Password',
  
'level' => 'Nivel'
); 
luego, donde obtienes las columnas ahora... usas dicha variable para leer las columnas de $heads
Código PHP:
$return .= '<th>'.htmlspecialchars($heads[$col_name]).'</th>'
y eso es todo....

NOTA que lo que estas haciendo con dicho código no se trata de un archivo de Excel verdadero, ya que solo le haces creer al navegador (y al sistema) que se trata de un archivo genuino!!

lo cual es un tremendo error, por que es HTML ... no dudo que MSExcel sea capaz de leerlo (esos de Redmond hacen hasta lo imposible por mantener ignorantes a sus usuarios)

pero entiende, esa no es la "verdad"... no te engañes, para crear un verdadero archivo de Excel necesitas una extensión verdadera, no simple HTML

por ejemplo, existe PHPExcel que precisamente sirve para dicho objetivo... y de verdad funciona, mucho mejor!!
__________________
Y U NO RTFM? щ(ºдºщ)

No atiendo por MP nada que no sea personal.

Etiquetas: encabezado, excel, exportado, personalizacion
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 10:29.