Login   Register  
PHP Classes
elePHPant
Icontem

File: excel.inc.php

Recommend this page to a friend!
Stumble It! Stumble It! Bookmark in del.icio.us Bookmark in del.icio.us
  Classes of Rubens  >  ADODB SQL 2 Excel  >  excel.inc.php  >  Download  
File: excel.inc.php
Role: Class source
Content type: text/plain
Description: The class
Class: ADODB SQL 2 Excel
Export SQL query results to Excel files with ADODB
Author: By
Last change: added my e-mail =)
Date: 8 years ago
Size: 2,243 bytes
 

Contents

Class file image Download
<?
//Fiz essa classe pela necessidade de exportar 
//dados vindos de um banco sql server (vc pode usar BD)
//para se utilizar basta instanciar a classe
//passando como parametros os titulos das colunas
//dentro de um vetor e o segundo parametro sendo a query em si
//a classe chama por padrao o ponteiro $db do ADODB, caso n seja esse o nome
//fique a vontade para modificar a classe
//(A classe GeralExcel n eh minha)
//Creditos a DzaiaCuck - dzaiacuck@ig.com.br 
//Rubens A. Monteiro - unplu@hotmail.com 20/09/05
class sql2excel extends GeraExcel 
        function 
sql2excel($tit$sql
        {
            global 
$db
            
$this->GeraExcel();
            for (
$i=0$i<count($tit); $i++) 
            {
                    
$this->MontaConteudo(0,$i,$tit[$i]);
             }
            
$qr=$db->execute($sql);
            
$j=1;
            while (
$reg=$qr->fetchrow())
            {
                    for (
$i=0$i<count($reg); $i++) 
                    {
                            
$this->MontaConteudo($j,$i,$reg[$i]);
                    }
                    
$j++;
            }
            
$this->GeraArquivo();
        }
}
class  
GeraExcel{

// define parametros(init)
function  GeraExcel(){

$this->armazena_dados   ""// Armazena dados para imprimir(temporario)
$this->ExcelStart();
}
// fim constructor

     
// Monta cabecario do arquivo(tipo xls)
function ExcelStart(){

//inicio do cabecario do arquivo
$this->armazena_dados pack"vvvvvv"0x8090x080x00,0x100x00x0 );
}

// Fim do arquivo excel
function FechaArquivo(){
$this->armazena_dados .= pack"vv"0x0A0x00);
}


// monta conteudo
function MontaConteudo$excel_linha$excel_coluna$value){

$tamanho strlen$value );
$this->armazena_dados .= pack"v*"0x0204$tamanho$excel_linha$excel_coluna0x00$tamanho );
$this->armazena_dados .= $value;
}
//Fim, monta Col/Lin

// Gera arquivo(xls)
function GeraArquivo(){

//Fecha arquivo(xls)
$this->FechaArquivo();
header("Content-type: application/zip");
//header("Content-type: text/x-comma-separated-values");
header('Expires: ' gmdate('D, d M Y H:i:s') . ' GMT');
header("Content-disposition: inline; filename=excel.xls");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header("Pragma: public");
print  ( 
$this->armazena_dados);
}
// fecha funcao
# Fim da classe que gera excel
}
?>