Gerando planilhas em Excel com PHP (Matéria Complementar)

No mundo da programação é raro o dia em que não nos deparamos com um ou outro obstáculo, sendo o desafio e a superação do mesmo algo que nos leva a fazer o que fazemos, seja com ou sem ajuda. Pois bem, à dias foi necessário exportar para um ficheiro uma listagem de determinado site. Até aqui tudo bem, sem problemas. A maneira mais simples seria criar em tempo real um ficheiro csv (ficheiro de valores separados por vírgulas) que pode ser aberto sem problemas no Excel, OpenOffice ou LibreOffice. Mas além de ser simples este tipo de ficheiro é bastante limitado e não nos permite definir quaisquer formatações para uma melhor aparência/facilidade de leitura, pois é um mero ficheiro de texto.

Depois de pesquisar e testar várias alternativas eis que cheguei ao “Santo Graal”: PHPExcel

O nome diz quase tudo, trata-se de uma classe para PHP para criar ficheiros Excel completamente personalizáveis. Fiquei literalmente de boca aberta com a potencialidade desta classe, pois tudo o que pode fazer no Excel normal é possível fazer nesta classe, desde colocar texto a negrito até colocar fórmulas de cálculo nas células.

Podem efectuar o download desta classe em PHPExcel Downloads (recommended download). Este download é muito completo, pois contém ficheiros de exemplo da sua utilização e uma documentação excelente onde nada é deixado ao acaso, o que me deixou impressionado.

Vou aqui demonstrar alguns exemplos do que podemos fazer com esta classe e recomendo vivamente a utilização doKomodo Edit 6 como ferramenta open source de desenvolvimento em PHP.

Para termos disponível a classe PHPExcel basta enviarmos para o nosso servidor a pasta “Classes” do PHPExcel. Uma vez feito isto a classe pode ser usada em qualquer parte do nosso site, bastando para isso fazer uma chamada à classe:

 

Aqui o caminho correcto para a classe depende onde colocaram a pasta “Classes“, por isso certifiquem-se do caminho correcto.

De seguida vamos criar um objecto de modo a usar a classe:

 

Neste momento já podemos aceder a todas as funcionalidades da classe PHPExcel usando, aqui como exemplo, o objecto $objPHPExcel.

Podemos definir as propriedades comuns/normais de um ficheiro Excel:

 

Caso seja necessário, ou por ser mais prático, podemos inserir dados consecutivos em várias células sem limites

 

E sempre que o desejarmos podemos definir a formatação quer das células (tipo de letra, cor, alinhamento) quer das colunas/linhas (ajuste automático da altura/largura), sem esquecer a possibilidade de desenhar limites em torno de uma célula ou de um conjunto de células:

 

Usar fórmulas também é uma realidade:

 

Depois de termos tudo o que queremos no ficheiro temos de indicar a criação do ficheiro com base nos dados guardados até ao momento no objecto $objPHPExcel:

 

E para que se obtenha este documento gerado em tempo real damos indicação para o mesmo abrir no browser (seja para visualização no browser seja para download)

 

Ficheiro criado com a classe PHPExcel

Estas são apenas algumas das muitas funcionalidades disponíveis nesta incrível classe PHPExcel à espera de serem exploradas.

Para que possam testar este mesmo código, fica aqui o código exemplo completo:

 

Façam bom uso desta classe pois tem muita potencialidade!

Em caso de questões, dúvidas ou sugestões, deixe um comentário no final da página.

 

Fonte: http://interessespessoais.com/programacaoweb/

Você pode gostar...

4 Resultados

  1. Tiago Ramalho disse:

    O artigo é tão bom que até se dá ao trabalho de plagiar os comentários!!!
    No mínimo podia colocar a fonte do artigo: http://interessespessoais.com/programacaoweb/

    • admin disse:

      Não vejo problema algum em colocar a fonte, mas colocarei a fonte sem problemas, Estamos aqui para ajudar, não tenho nenhum fim lucrativo com essa matéria, somente ajuda mesmo. obrigado pelo contato.

  2. admin disse:

    Estou com um problema aqui, as células da planilha estão com tipo “GERAL” e não “TEXTO”, com isso perco os ZEROS dos campos!
    alguém pode ajudar?

    $obj = PHPExcel_IOFactory::createReader(‘Excel5’);
    $Excel= $obj->load($arqXLS);
    $Excel->setActiveSheetIndex(0);
    $Excel->getDefaultStyle()->getNumberFormat()->setFormatCode(PHPExcel_Style_NumberFormat::FORMAT_TEXT);

    $sXLS = PHPExcel_IOFactory::createWriter($Excel, ‘Excel5’);
    $sXLS->save($arqXLS);

  3. admin disse:

    Na verdade há um pequeno truque que se tem de fazer quando o texto que escrevemos nas células têm acentos ou outros caracteres especiais.
    Aconselho a usar sempre (na criação do ficheiro excel) a função utf8_encode() para que os caracteres fiquem correctos. Aqui fica um exemplo, pegando no código que aqui mostrei:

    $objPHPExcel->setActiveSheetIndex(0)
    ->setCellValue(‘A1’, utf8_encode(‘Título do Exemplo da Classe PHPExcel (vai ficar a negrito)’))
    ->setCellValue(‘A2’, utf8_encode(‘uma excelente classe (vai ficar em itálico a azul)’));

    desta forma já deve ficar ok.

Deixe uma resposta ou comentário

%d blogueiros gostam disto: