Ver Mensaje Individual
  #3 (permalink)  
Antiguo 24/04/2009, 13:51
Lcmadrigal
 
Fecha de Ingreso: abril-2009
Mensajes: 5
Antigüedad: 15 años, 7 meses
Puntos: 0
Sonrisa

Gracias!....

Lo miraré y les estaré contando, al parecer si es lo que necesito......es algo asi como exportar datos.

Buen dia!

Hola de nuevo!

Pues mira que si me sirvió y mucho, esto fué lo que hice:

En un archivo que llamé funciones.php coloqué la class Excel():

Código PHP:
<?
/*
 * CLASS
 */
class Excel {

    private 
$file;
    private 
$row;

    
/*
     * Constructor
     */
    
function __construct(){
        
$this->file $this->__BOF();
        
$row 0;
    }

    
/*
     * Inicio del fichero
     */
    
private function __BOF() {
        return 
pack("ssssss"0x8090x80x00x100x00x0);
    }

    
/*
     * Final del fichero
     */
    
private function __EOF() {
        return 
pack("ss"0x0A0x00);
    }

    
/*
     * Escribe un número en una fila y columna
     */
    
private function __writeNum($row$col$value) {
        
$this->file .= pack("sssss"0x20314$row$col0x0);
        
$this->file .= pack("d"$value);
    }

    
/*
     * Escribe un string en una fila y columna
     */
    
private function __writeString($row$col$value ) {
        
$L strlen($value);
        
$this->file .= pack("ssssss"0x204$L$row$col0x0$L);
        
$this->file .= $value;
    }

    
/*
     * Escribe un valor en una fila y columna, este método decide si será un número o un string.
     */
    
private function writeCell($value,$row,$col) {
        if(
is_numeric($value)) {
            
$this->__writeNum($row,$col,$value);
        }elseif(
is_string($value)) {
            
$this->__writeString($row,$col,$value);
        }
    }

    
/*
     * Añadir datos de una fila
     */
    
public function addRow($data,$row=null) {
        
$columns count($data);

        if(!isset(
$row)) {
            
$row $this->row;
            
$this->row++;
        }
        for(
$i=0$i<$columns$i++) {
            
$cell $data[$i];
            
$this->writeCell($cell,$row,$i);
        }
    }

    
/*
     * Añadir datos de una tabla
     */
    
public function addTable($data) {
        
$rows count($data);

        for(
$j=0;$j<$rows;$j++){

            
$row $this->row;
            
$this->row++;

            
$columns count($data[$j]);

            for(
$i=0$i<$columns$i++) {

                
$cell $data[$j][$i];
                
$this->writeCell($cell,$row,$i);

            }
        }
    }

    
/*
     * Genera un fichero para descargar en memoria
     */
    
public function download($filename) {
        
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=$filename ");
        
header("Content-Transfer-Encoding: binary ");
        
$this->write();
    }

    
/*
     * Escribe el contenido del fichero
     */
    
public function write() {
        echo 
$file $this->file.$this->__EOF();
    }

}

?>
Luego en mi programa de procesos hice lo siguiente:

Código PHP:
<?
  $fecha_consulta
=($_POST['fecha_consulta']);
  if (empty(
$nit_cliente))
     {
      
Header("Location: Error_consulta_id_vacio.php?");
      exit;
     }
     
$dbi=Conectarse($dbhost$dbuname$dbpass,$dbname);
     
$cueri "SELECT * FROM facturas WHERE fecha_consulta=$fecha_consulta";
     
$result=mysql_query($cueri,$dbi);
     if (
$row=mysql_fetch_array($result))
        {
         
mysql_field_seek($result,0);
         
$xls = new Excel();
         
$xls->addRow(Array("Id Factura","Documento","Cliente","Suscripcion","Cupon pago","Fecha Sin Recargo","Fecha Con Recargo","Periodo consumo","Total cobro","Total Vencido","Total Pagar","Notas","Estado","Proveedor","Nit Cliente","Fecha Consulta"));
         do {
         
             
$xls->addRow(Array($row["id_factura"],$row["documento"],$row["cliente"],$row["suscripcion"],$row["cupon_pago"],$row["fecha_sin_recargo"],$row["fecha_con_recargo"],$row["periodo_consumo"],$row["total_cobro"],$row["total_vencido"],$row["total_pagar"],$row["notas"],$row["estado"],$row["provedor"],$row["nit_cliente"],$row["fecha_consulta"]));
             
            } while (
$row mysql_fetch_array($result));
            
$xls->download("procesar.xls");
        }
        else
         {
           
Header("Location: error_no_registros.php?");
         }
         
mysql_close($dbi);
?>
Y pues me ha funcionado.......muchas gracias

Última edición por GatorV; 24/04/2009 a las 15:04