Como gerar Excel com o PHP - Parte 1
Diego Pires | 17/04/2008 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
Não deixe de ler também:
Se gostou do texto e não quer perder as atualizações assine meu feed!







[...] a série que comecei aqui, vamos a parte 2
Como gerar Excel com o PHP - Parte 2 | DiegoPires.net | 15/05/2008[...] a série que comecei aqui, vamos a parte 2 de como gerar planilhas excel com o [...]