Autor Tema: Excel y PHP??  (Leído 9392 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Axol00

  • **
  • Mensajes: 53
  • Liked: 0
Excel y PHP??
« : enero 07, 2009, 11:41:57 am »
Buen día gente de la CUM, tengo una dudotaa

Requiero hacer un export de informacion a un reporte de Excel (es decir con php debo de sacar los datos de una BD Mysql y mostrarlos en la pantalla, hasta aki todo bien perooo despues debe de existir algo asi como un export para mandar esa información a un excel que debe de tener un logo, nombre de la empresaa y los datos que se muestran en la pantalla y fueron obtenidos por medio de la BD.


Espero me puedan ayudar a este respecto ya que ya lo he googleado y no encuentro por donde

Saludos,

EnsaladaPopof

  • Mensajes: 16
  • Liked: 0
Re: Excel y PHP??
« Respuesta #1 : enero 07, 2009, 01:26:40 pm »
Jamás pude hacerlo, lo que logré fue exportar a Word, pero a excel hasta donde sé creo que no se puede. Lo más viable que pude hacer fue obviamente general el XML y después importarlo manualmente a excel, pero se prefirio el formato Word.

menteg

  • *
  • Mensajes: 32
  • Liked: 0
  • Cree en el ideal, no en el idolo!!
Re: Excel y PHP??
« Respuesta #2 : enero 07, 2009, 06:26:19 pm »
Cuando requiero hacer eso que tu dices uso la libreria "excelwriter.inc.php" , checate informacion en google.

salu2
“Habrá ganancias por nuestras perdidas, pero también vindicaciones por nuestros agravios”

rocaanvil

  • ***
  • Mensajes: 274
  • Liked: 0
    • http://rocaanvil.wordpress.com
Re: Excel y PHP??
« Respuesta #3 : enero 08, 2009, 01:45:12 am »
si tu información no es muy elaborada o requieres formatos y tablas y la madre, puedes usar asi rapido y facil comma separated values (csv)

busca informacion sobre es.

roca.
Si te gustan mis alas.. porque te empeñas en cortarlas??

Axol00

  • **
  • Mensajes: 53
  • Liked: 0
Re: Excel y PHP??
« Respuesta #4 : enero 08, 2009, 12:53:42 pm »
Buen día gente, me repondo a mi mismo gracias a San Google por la respuesta, lo unico que hize fue acomodar la info en una tabla de html

y despues agregar estas cabeceras al principio del archivo php.

Código: [Seleccionar]
header('Content-type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename=Nombre_del_archivo.xls');
header('Pragma: no-cache');
header('Expires: 0');

Y funciono todo, solo falta darle diseño a la tabla html y todo pero hasta donde voy, te respeta el color borders etc etc...

Esto es una manera si alguien tiene alguna ps que la pase


Saludos y gracias por responderrr,

hd

  • *
  • Mensajes: 43
  • Liked: 0
  • Hi, it's me.
Re: Excel y PHP??
« Respuesta #5 : marzo 03, 2009, 11:38:11 am »

NaPa

  • Moderador
  • *
  • Mensajes: 465
  • Liked: 28
  • Mi Kung Fu Es El Mejor...
    • Security Nation
Re: Excel y PHP??
« Respuesta #6 : marzo 05, 2009, 12:10:33 pm »
Espero te ayude....

 

function xlsBOF() {
    echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); 
    return;
}

function xlsEOF() {
    echo pack("ss", 0x0A, 0x00);
    return;
}

function xlsWriteNumber($Row, $Col, $Value) {
    echo pack("sssss", 0x203, 14, $Row, $Col, 0x0);
    echo pack("d", $Value);
    return;
}

function xlsWriteLabel($Row, $Col, $Value ) {
    $L = strlen($Value);
    echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L);
    echo $Value;
return;
}



// Query Database
    $result=mysql_db_query($dbname,"select id,prename,name,sname,grade from appdata where course='$courseid' and sec='$section'")

    // Send Header
    header("Pragma: public");
    header("Expires: 0");
    header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
    header("Content-Type: application/force-download");
    header("Content-Type: application/octet-stream");
    header("Content-Type: application/download");;
    header("Content-Disposition: attachment;filename=$courseid-$sec.xls "); // แล้วนี่ก็ชื่อไฟล์
    header("Content-Transfer-Encoding: binary ");

    // XLS Data Cell

                xlsBOF();
                xlsWriteLabel(1,0,"Student Register $semester/$year");
                xlsWriteLabel(2,0,"COURSENO : ");
                xlsWriteLabel(2,1,"$courseid");
                xlsWriteLabel(3,0,"TITLE : ");
                xlsWriteLabel(3,1,"$title");
                xlsWriteLabel(4,0,"SETION : ");
                xlsWriteLabel(4,1,"$sec");
                xlsWriteLabel(6,0,"NO");
                xlsWriteLabel(6,1,"ID");
                xlsWriteLabel(6,2,"Gender");
                xlsWriteLabel(6,3,"Name");
                xlsWriteLabel(6,4,"Lastname");
                $xlsRow = 7;
                while(list($id,$prename,$name,$sname,$grade)=mysql_fetch_row($result)) {
                    ++$i;
                          xlsWriteNumber($xlsRow,0,"$i");
                          xlsWriteNumber($xlsRow,1,"$id");
                          xlsWriteLabel($xlsRow,2,"$prename");
                          xlsWriteLabel($xlsRow,3,"$name");
                          xlsWriteLabel($xlsRow,4,"$sname");
                    $xlsRow++;
                    }
                     xlsEOF();
                 exit();
-=#NaPa#=-
Microsoft Certified Professional/Certified Ethical Hacker/ITIL v3 Certified
http://www.securitynation.com

Komtec1

  • Backtracker
  • *
  • Mensajes: 133
  • Liked: 1
    • Komtec1
Re: Excel y PHP??
« Respuesta #7 : septiembre 05, 2009, 01:54:38 am »
ya tiene algo de tiempo este tema, pero por si le sirve a alguien le dejo este code, se me hace un poco mas facil hacerlo asi, pueden comentar la linea del header para que se los vaya mostrando en html, ya que organizamos primero como queremos que se muestren los datos (tal como se vera la tabla, incluso pueden poner en la salida los colores y demas) y al final solo quitan el comentario del header para que les mande el archivo de excel y listo lo tendran tal y como lo programaron :D :

Código: [Seleccionar]
<?php
//Exportar datos de php a Excel
header("Content-Type: application/vnd.ms-excel");
header("Expires: 0");
header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
header("content-disposition: attachment;filename=ReportesRGF.xls");
?>
<?
require("config.php");
$connect = mysql_connect ($dbhost, $dbusername, $dbuserpass);
mysql_select_db ($dbname) or die("Error seleccionando la base de datos");
$consulta = mysql_query("
select
b.ruta, b.id_cas, a.cve_ele, a.nombre, a.paterno, a.materno, a.calle, a.num_ext, a.num_int, a.col, a.tel_func, a.tp_repre
from
frgf a, rf b
where
a.id_rg = b.id_rg

",$connect);
?>
<table border="1" align="center" CELLPADDING="1" CELLSPACING="1">
<tr>
<td nowrap="nowrap" style="font-size: .8em"><b>Ruta</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Casilla</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Cve Elec</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Nombre</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Paterno</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Materno</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Calle</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b># Ext</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b># Int</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Col</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Tel</b></td>
<td nowrap="nowrap" style="font-size: .8em"><b>Tipo</b></td>
</tr>
<?
$sin = "<font color=\"red\">Sin Datos</font>";
while($row = mysql_fetch_array($consulta))
{
?>
<tr>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["ruta"] == NULL) { $row["ruta"]="$sin";} echo $row["ruta"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["id_cas"] == NULL) { $row["id_cas"]="$sin";} echo $row["id_cas"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["cve_ele"] == NULL) { $row["cve_ele"]="$sin"; $a=1;} echo $row["cve_ele"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["nombre"] == NULL) {$row["nombre"]="$sin"; $a=$a+1;} echo $row["nombre"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["paterno"] == NULL) {$row["paterno"]="$sin";$a=$a+1;} echo $row["paterno"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["materno"] == NULL) {$row["materno"]="$sin";$a=$a+1;} echo $row["materno"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["calle"] == NULL) { $row["calle"]="$sin";} echo $row["calle"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["num_ext"] == NULL) { $row["num_ext"]="$sin";} echo $row["num_ext"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["num_int"] == NULL) { $row["num_int"]="$sin";} echo $row["num_int"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["col"] == NULL) { $row["col"]="$sin";} echo $row["col"];  ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["tel_func"] == NULL) { $row["tel_func"] = "$sin";} echo $row["tel_func"]; ?></td>
<td nowrap="nowrap" style="font-size: .8em"><? if($row["tp_repre"] == NULL) { $row["tp_repre"] = "$sin";} echo $row["tp_repre"]; ?></td>
</tr>
<?
}
?>
</table>

y de ahi lo pueden mandar a llamar con un popup algo asi:

Código: [Seleccionar]
<script language="JavaScript">
function abrirReportergl() {
open("elnombredesuarchivo.php","miVentana", "toolbar=no,directories=no,menubar=no,status=n o");
}
</script>

eso en la pagina principal, y esto:

Código: [Seleccionar]
<a href=javascript:abrirReportergl()>Reporte RGF</a>

en donde va el link claro, espero les sirva, saludos!

PD Obvio cambien por sus variables de db :P

Komtec1
« Última Modificación: septiembre 05, 2009, 01:56:30 am por Komtec1 »

juca

  • JUCA
  • ***
  • Mensajes: 76
  • Liked: 1
  • www.hackeruna.com
    • hackeruna :: Seguridad Informática
Re: Excel y PHP??
« Respuesta #8 : junio 18, 2012, 11:01:16 am »
Te recomiendo que no trabajes con excel mejor convierte lso datos a un archivo de texto .csv el mismo se abre en excel o en openoffice con esto no estas atado a microsoft y funciona en cualquier maquina.

Solo necesitas utilizar fopen, fwrite.

Saludos
JUCA