Foros del Web » Programando para Internet » PHP »

Exportar tabla html a excel!

Estas en el tema de Exportar tabla html a excel! en el foro de PHP en Foros del Web. He estado buscando informacion y solo he encontrado que hay que pasar la tabla a .csv y mediante un boton ofrecer la descarga del fichero ...
  #1 (permalink)  
Antiguo 25/05/2009, 03:14
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Exportar tabla html a excel!

He estado buscando informacion y solo he encontrado que hay que pasar la tabla a .csv y mediante un boton ofrecer la descarga del fichero en .csv de la tabla html.
Eso es lo que quiero hacer, que mediante un boton se pase una tabla en html a un archivo excel o oppenoffice...
alguien tiene idea de como puedo hacer eso?
gracias!
  #2 (permalink)  
Antiguo 25/05/2009, 03:26
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

bueno te explico un poco, para cada casilla es como si pusieses una tabulacion

<td>hola0</td><td>hola1</td><td>hola2</td>

$excel="hola0\thola1\thola2";

por cada <tr> tienes que pasar a la linea

$excel.="\n";

un ejemplo
<table>
<tr>
<td>hola0</td><td>hola1</td><td>hola2</td>
</tr>
<tr>
<td>hola3</td><td>hola4</td><td>hola5</td>
</tr>
</table>

$excel="hola0\thola1\thola2\n";
$excel.="hola3\thola4\thola5";

luego esta variable la envias con un form por post a una pagina donde no tengas ningun codigo HTML y pones estas cabeceras

$excel=$_POST['export'];
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=Budget Total.xls");

print $excel;
exit;

suerte
  #3 (permalink)  
Antiguo 25/05/2009, 04:11
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

pff! muy chungo veo yo eso! no hay alguna forma mas facil o clara de hacerlo? soy novatillo...
gracias!!
  #4 (permalink)  
Antiguo 25/05/2009, 04:19
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

pues para mi es la mas facil, por que luego existen librerias y cosas de esas que podrias utilizar.. pero si eres nuevo en esto...

mira esto.
http://chumby.net/2007/03/27/php-excel-export-class/
  #5 (permalink)  
Antiguo 25/05/2009, 04:59
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

haber, esta es la tabla que quiero importar con la funcion que me has indicado...
Código PHP:
$consulta mysql_query("SELECT * FROM articulos"$conexion);

while(
$fila mysql_fetch_array($consulta))
    {
    echo
    
"<tr>
        <td>$fila[ns]</td>
        <td>$fila[articulo]</td>
        <td>$fila[marca]</td>
        <td>$fila[modelo]</td>
        <td>$fila[empresa]</td>
        <td>$fila[ubicacion]</td>
        <td>$fila[sububicacion]</td>
        <td>$fila[observaciones]</td>
    </tr>"
;

    }
    
$excel="$fila[ns]\t$fila[articulo]\t$fila[marca]\n";
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]";
    
$excel.="$fila[suubicacion]\t$fila[observaciones]";
    
    
    echo 
"<form action=excel.php method = POST><input type = submit value = Importar></form>"
y esta es la otra pagina:
Código PHP:
<?php
$excel
=$_POST['export'];
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=tablaarticulos.xls");

print 
$excel;
exit;
?>
que falla?
  #6 (permalink)  
Antiguo 25/05/2009, 05:59
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

Código PHP:
$consulta mysql_query("SELECT * FROM articulos"$conexion);

while(
$fila mysql_fetch_array($consulta))
    {
    echo
    
"<tr>
        <td>$fila[ns]</td>
        <td>$fila[articulo]</td>
        <td>$fila[marca]</td>
        <td>$fila[modelo]</td>
        <td>$fila[empresa]</td>
        <td>$fila[ubicacion]</td>
        <td>$fila[sububicacion]</td>
        <td>$fila[observaciones]</td>
    </tr>"
;

    }
    
$excel="$fila[ns]\t$fila[articulo]\t$fila[marca]\t";
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]\t";
    
$excel.="$fila[suubicacion]\t$fila[observaciones]";
    
    
    echo 
'<form action="excel.php" method = "POST">
<input type="text" name="export" value="'
.$excel.'"/>
<input type = "submit" value = "Importar">
</form>'

Código PHP:
<?php
$excel
=$_POST['export'];
header("Content-type: application/vnd.ms-excel");
header("Content-disposition: attachment; filename=tablaarticulos.xls");

print 
$excel;
exit;
?>

Última edición por fatasma; 25/05/2009 a las 06:43
  #7 (permalink)  
Antiguo 25/05/2009, 07:39
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

Código PHP:
while($fila mysql_fetch_array($consulta))
    {
    echo
    
"<tr>
        <td><center><font face=verdana size=1>&nbsp;$fila[ns]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[articulo]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[marca]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[modelo]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[empresa]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[ubicacion]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[sububicacion]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[observaciones]&nbsp;</center></font></td>
    </tr>"
;

    }
    
$excel="$fila[ns]\t$fila[articulo]\t$fila[marca]\t"
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]\t"
    
$excel.="$fila[suubicacion]\t$fila[observaciones]"

    
    
    
    echo 
"</table><br>";
    echo 
"<form><input type=button name=imprimir value=Imprimir onclick=window.print();></form>";
    echo 
"<form action=excel.php method = POST><input type=text name=export value='.$excel.'/> 
    <input type = submit value = Importar></form>"
;
    
$cuenta mysql_num_rows($consulta);
    echo 
"<hr>Total numero de articulos: $cuenta";
    echo 
"</center>";
    echo 
"</font>"
asi lo tengo EXACTAMENTE, me abre el excel (oppenoffice en mi caso) pero me sale los campos en blanco!
estamos mas cerca!! gracias!!
  #8 (permalink)  
Antiguo 25/05/2009, 07:56
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

Código PHP:
$excel="";
while(
$fila mysql_fetch_array($consulta))
{
    echo 
"<tr>
        <td><center><font face=verdana size=1>&nbsp;$fila[ns]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[articulo]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[marca]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[modelo]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[empresa]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[ubicacion]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[sububicacion]&nbsp;</center></font></td>
        <td><center><font face=verdana size=1>&nbsp;$fila[observaciones]&nbsp;</center></font></td>
    </tr>"
;

    
    
$excel.="$fila[ns]\t$fila[articulo]\t$fila[marca]\t"
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]\t"
    
$excel.="$fila[suubicacion]\t$fila[observaciones]\n"
}
    
    
    
    echo 
"</table><br>";
    echo 
"<form><input type=button name=imprimir value=Imprimir onclick=window.print();></form>";
    echo 
"<form action=excel.php method = POST><input type=text name=export value='$excel'/> 
    <input type = submit value = Importar></form>"
;
    
$cuenta mysql_num_rows($consulta);
    echo 
"<hr>Total numero de articulos: $cuenta";
    echo 
"</center>";
    echo 
"</font>"
pienso que asi te puede funcionar

'por el <input type="text" > donde tienes el $excel.. lo puedes poner en hidden asi no lo veras...

suerte
  #9 (permalink)  
Antiguo 25/05/2009, 08:07
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel


ya me lo exporta!!
pero me lo hace todo en una fila en el excel...



hay alguna forma de ponerlo una fila cada vez? gracias!!
  #10 (permalink)  
Antiguo 25/05/2009, 08:17
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

pues tienes que poner \n en la ultima linea

$excel.="$fila[suubicacion]\t$fila[observaciones]\n";

si lo tienes asi es raro que te salga en una sola linea
  #11 (permalink)  
Antiguo 25/05/2009, 08:24
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

Código PHP:
  $excel.="$fila[ns]\t$fila[articulo]\t$fila[marca]\t";  
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]\t";  
    
$excel.="$fila[suubicacion]\t$fila[observaciones]\n"
asi me enseña todo en una fila

y quitando el punto al primer $excel -->

Código PHP:
  $excel="$fila[ns]\t$fila[articulo]\t$fila[marca]\t";  
    
$excel.="$fila[modelo]\t$fila[empresa]\t$fila[ubicacion]\t";  
    
$excel.="$fila[suubicacion]\t$fila[observaciones]\n"
me enseña solo un registro de la base de datos pero en el sitio que toca (a partir de A1, B1, C1, D1,...)

gracias!!
  #12 (permalink)  
Antiguo 25/05/2009, 08:31
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

no. tienes que dejar el punto..

es para que al volver por el bucle se siga guardando los valores dentro de la variable
y no sean remplazados por la ultima vuelta del bucle (supongo que el registro que te muestra es el ultimo normalmente)

pero por lo de la lineas no se...

prueba con esto:

$excel.=$fila[ns]."\t".$fila[articulo]."\t".$fila[marca]."\t";
$excel.=$fila[modelo]."\t".$fila[empresa]."\t".$fila[ubicacion]."\t";
$excel.=$fila[suubicacion]."\t".$fila[observaciones]."\n";
  #13 (permalink)  
Antiguo 25/05/2009, 08:37
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

Cita:
Iniciado por fatasma Ver Mensaje
no. tienes que dejar el punto..

es para que al volver por el bucle se siga guardando los valores dentro de la variable
y no sean remplazados por la ultima vuelta del bucle (supongo que el registro que te muestra es el ultimo normalmente)

pero por lo de la lineas no se...

prueba con esto:

$excel.=$fila[ns]."\t".$fila[articulo]."\t".$fila[marca]."\t";
$excel.=$fila[modelo]."\t".$fila[empresa]."\t".$fila[ubicacion]."\t";
$excel.=$fila[suubicacion]."\t".$fila[observaciones]."\n";

ok! gracias por la aclaracion! pero con el codigo que me has puesto hace lo mismo... me muestra todos los registros en una sola linea

haber si alguien mas nos lee y se le ocurre algo
  #14 (permalink)  
Antiguo 25/05/2009, 13:12
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

arriba!! alguien sabe que puede ser?
  #15 (permalink)  
Antiguo 25/05/2009, 13:55
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel

una pregunta tonta: con que habres el archivo??? excel o openoffice..
  #16 (permalink)  
Antiguo 25/05/2009, 14:45
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

Cita:
Iniciado por fatasma Ver Mensaje
una pregunta tonta: con que habres el archivo??? excel o openoffice..
tanto en el excel como en el oppenoffice me saca el resultado en una sola linea
  #17 (permalink)  
Antiguo 25/05/2009, 14:52
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel

mira, he creado una base de datos pequeña para poner el ejemplo, el text box que creo ya esta en una sola linea




asi es normal que me enseñe solo una linea, porque me exporta el textbox
  #18 (permalink)  
Antiguo 26/05/2009, 00:27
Usuario no validado
 
Fecha de Ingreso: octubre-2008
Ubicación: BRUSELAS
Mensajes: 211
Antigüedad: 15 años, 5 meses
Puntos: 3
Respuesta: Exportar tabla html a excel!

sera una tonteria pero asi es como lo tengo yo en una pagina y me funciona

el input type text , pasalo a hidden. y
pon el formulario en html (sin el echo).

?>
<form action=excel.php method = POST>
<input type="hidden" name="export value="<?php echo $excel;?>"/>
<input type = "submit" value =" Importar">
</form>
<?php

copia el codigo y me cuentas que tal..
  #19 (permalink)  
Antiguo 26/05/2009, 02:43
 
Fecha de Ingreso: abril-2009
Mensajes: 46
Antigüedad: 15 años
Puntos: 0
Respuesta: Exportar tabla html a excel!

Cita:
Iniciado por fatasma Ver Mensaje
sera una tonteria pero asi es como lo tengo yo en una pagina y me funciona

el input type text , pasalo a hidden. y
pon el formulario en html (sin el echo).

?>
<form action=excel.php method = POST>
<input type="hidden" name="export value="<?php echo $excel;?>"/>
<input type = "submit" value =" Importar">
</form>
<?php

copia el codigo y me cuentas que tal..

ahi estamos!! he puesto hidden y funciona!!
mil millones de gracias fatasma
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.
Tema Cerrado




La zona horaria es GMT -6. Ahora son las 16:46.