Code snippets for symfony 1.x

Navigation

Refine Tags

Snippets tagged "xls"

Generating a simple report .xls - Gerando um simples relatório. xls (Excel)

<?php
/**
 * Generating a simple report xls. - Gerando um simples relatório xls (Excel)
 *
 * Use only in the production environment 
 * @package    symfony
 * @subpackage report
 * @author     Guilherme Veras <guilhermeveras@gmail.com>
 * @version    0.1
 */
 
class reportActions extends sfActions
{
    /*
     * Use your imagination to get parameters and generalize this function.
     * Use sua imaginação para receber parametros e generalizar está função.
     */
 
    public function executeReport()
    {
        $header = ""; // Cabeçalho
        $data   = ""; // Dados
        /* 
         * Mounting the grid header (\t to tab and \n for line break)
         * Montando o cabeçalho da planilha (\t para tabulação e \n para quebra de linha)
         */
 
        $header .= "ID\t";  
        $header .= "Name\t"; 
        $header .= "Phone\t";
        $header .= "City\t";
        $header .= "Comment\t";
        $header .= "\n";
 
        // Seeking people of DB
        // Buscando pessoaa do BD
        $person = PersonPeer::doSelect (new Criteria());
 
        // Rode the rows       
        // Percoremos nosso vetor de pessoas       
        foreach ($person as $p)
        {
                $data .= $p->getId()."\t";
                $data .= $p->getName()."\t";
                $data .= $p->getPhone()."\t";
                $data .= $p->getCity()."\t";
                $data .= $p->getComment()."\t";
                $data .= "\n"; // new line
        }        
                header ( "Content-type: application/octet-stream" );
                // Content-Disposition: indica que o arquivo deverá ser gerado para download (parametro attachment)
                // e o nome dele será o contido dentro do parametro filename.
                header ( "Content-Disposition: attachment; filename=my_report.xls" );
                // No cache, ou seja, não guarda cache, pois ele é gerado dinamicamente
                header ( "Pragma: no-cache" );
                // Não expira
                header ( "Expires: 0" );
                // Very simple =)
                // E aqui geramos o arquivo com os dados mencionados acima!
                print "$header\n$data";
 
                return sfView::NONE;
    }
}
 
by Guilherme Veras on 2009-10-16, tagged report  spreadsheet  xls