Migração

Estou migrando meu site para esse novo layout. Além disso estou retirando todo o conteúdo "ilegal" do mesmo, portanto, tenham paciência ;-) Em breve estará tudo configurado e bonitinho por aqui!

Como gerar excel com o PHP – Parte 1

Written by Diego Pires on 17 de abril de 2008. Posted in Artigos, PHP

Nessa série de artigos que estou começando aqui no blog vou apresentar algumas formas de você “exportar” seus relatórios para o formato de planilhas Excel.
Existem diversas formas de gerar uma planilha excel com o PHP e eu vou começar com o mais fácil na parte 1. Vamos criar “na unha”, sem utilizar nenhuma extensão ou biblioteca pronta.

Então vamos lá. É muito mais simples do que imagina.
O primeiro passo de tudo é você escrever o seu relatório no navegador em formato de tabela. Sim, o Excel nada mais é que uma enorme tabela de dados. Então não fique se preocupando com coisas do tipo:
“Ah… mas meu sistema é todo tableless, você quer que eu use tabelas agora?”
Tabelas são feitas para serem usadas para apresentar dados tabulados, portanto, essa é a melhor maneira de se utilizar tabelas: Montar relatórios (que não são nada mais do que dados tabulados).

Portanto, faça seu script apresentar o relatório que necessita em formato de dados tabulados. Vou colocar um exemplo bem simples aqui para ilustrar:

<?php
echo ”
<table>
<tr>
<td>Linha 1 – Coluna 1</td>
<td>Linha 1 – Coluna 2</td>
<td>Linha 1 – Coluna 3</td>
<td>Linha 1 – Coluna 4</td>
<td>Linha 1 – Coluna 5</td>
<td>Linha 1 – Coluna 6</td>
</tr>
<tr>
<td>Linha 2 – Coluna 1</td>
<td>Linha 2 – Coluna 2</td>
<td>Linha 2 – Coluna 3</td>
<td>Linha 2 – Coluna 4</td>
<td>Linha 2 – Coluna 5</td>
<td>Linha 2 – Coluna 6</td>
</tr>
<tr>
<td>Linha 3 – Coluna 1</td>
<td>Linha 3 – Coluna 2</td>
<td>Linha 3 – Coluna 3</td>
<td>Linha 3 – Coluna 4</td>
<td>Linha 3 – Coluna 5</td>
<td>Linha 3- Coluna 6</td>
</tr>
</table>
“;
?>

Digamos portanto que esse seja o seu relatório que deseja transformar em excel. Agora o próximo passo é dizer ao navegador que o que ele leu é um arquivo Excel. Para isso, adicione as seguintes linhas no começo do seu script:

header(“Content-type: application/vnd.ms-excel”);
header(“Content-type: application/force-download”);
header(“Content-Disposition: attachment; filename=relatorio.xls”);
header(“Pragma: no-cache”);

Na terceira linha, onde está “filename=relatorio.xls” é o nome do arquivo que o navegador irá sugerir na hora de informar o download do mesmo. Então seu script ficaria assim:

<?php
header(“Content-type: application/vnd.ms-excel”);
header(“Content-type: application/force-download”);
header(“Content-Disposition: attachment; filename=relatorio.xls”);
header(“Pragma: no-cache”);
echo ”
<table>
<tr>
<td>Linha 1 – Coluna 1</td>
<td>Linha 1 – Coluna 2</td>
<td>Linha 1 – Coluna 3</td>
<td>Linha 1 – Coluna 4</td>
<td>Linha 1 – Coluna 5</td>
<td>Linha 1 – Coluna 6</td>
</tr>
<tr>
<td>Linha 2 – Coluna 1</td>
<td>Linha 2 – Coluna 2</td>
<td>Linha 2 – Coluna 3</td>
<td>Linha 2 – Coluna 4</td>
<td>Linha 2 – Coluna 5</td>
<td>Linha 2 – Coluna 6</td>
</tr>
<tr>
<td>Linha 3 – Coluna 1</td>
<td>Linha 3 – Coluna 2</td>
<td>Linha 3 – Coluna 3</td>
<td>Linha 3 – Coluna 4</td>
<td>Linha 3 – Coluna 5</td>
<td>Linha 3- Coluna 6</td>
</tr>
</table>
“;
?>

E pronto, acabou. Muito simples não é?

Na parte 2 desse artigo irei apresentar algumas classes css para formatar seu arquivo excel e deixar ele mais “apresentável” e também formatar dados como numérico, texto, data, etc.

Espero ter ajudado

Tags: ,

Trackback from your site.

Diego Pires

Diego Pires trabalha com programação fazem 10 anos, 9 deles dedicados à programação voltada para internet. Apaixonado por tecnologias e novos conceitos, procura sempre estar atualizado com as novidades do mercado de tecnologia.

Comments (2)

Leave a comment

Contato

Cansado do seu site velho e arcaico? Sem problemas - Fale comigo e resolvemos isso!

Fale Comigo

Social Bookmarks

Twitter Facebook flickr Feed RSS