Exportando dados para EXCELL com PHP
Um dia desses, me surgiu um problema ao elaborar um sistema. O Cliente queria que o sistema exportasse os dados de determinado relatório para Excell.
Em ASP, eu sabia fazer, porém, estava usando PHP… O que fazer?
Pesquisei na internet e entendi o funcionamento. Percebi que é bem simples.
1º O que é uma planilha?
É em principio uma tabela.
<table> <tr> <td>Linha 1, Coluna 1</td> <td>Linha 1, Coluna 2</td> <td>Linha 1, Coluna 2</td> </tr> <tr> <td>Linha 2, Coluna 1</td> <td>Linha 2, Coluna 2</td> <td>Linha 2, Coluna 2</td> </tr> <tr> <td>Linha 3, Coluna 1</td> <td>Linha 3, Coluna 2</td> <td>Linha 3, Coluna 2</td> </tr> </table>
Ta, fiz a tabela, e agora… Como eu exporto…
Simples, você exporta através de de função header do PHP.
Muitos que estão lendo devem conhecer a função header apenas como uma maneira de redirecionar uma página, porém ela vai muito além disso…
Veja no nosso caso, como é:
header("Content-type: application/vnd.ms-excel");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=relatorio.xls");
header("Pragma: no-cache");
Utilizando a tabela gerada e as funções de Header no mesmo arquivo, será gerado um excell com a sua estrutura de tabela.
Veja o Código Completo
<?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");
?>
<table>
<tr>
<td><strong>Linha 1, Coluna 1</strong></td>
<td>Linha 1, Coluna 2</td>
<td>Linha 1, Coluna 2</td>
</tr>
<tr>
<td>Linha 2, Coluna 1</td>
<td>Linha 2, Coluna 2</td>
<td>Linha 2, Coluna 2</td>
</tr>
<tr>
<td>Linha 3, Coluna 1</td>
<td>Linha 3, Coluna 2</td>
<td>Linha 3, Coluna 2</td>
</tr>
</table>
Utilizando este código, será gerado um arquivo chamado “relatorio.xls” com os dados da tabela.

Se você analisar o código acima, você verá que eu formatei a primeira celula da primeira linha, deixando-a em negrito. Você pode formatar da maneira como você necessitar.
- Trabalhando com datas em PHP
- PHP: Trabalhando com horários – Fuso
- Javascript para principiantes ou esquecidinhos. Aula 4 – Funções
- Javascript para principiantes ou esquecidinhos. Aula 6 – Manipulando o DOM
- Flash validado pelo W3C
5 Comentários »
Rss dos comentários TrackBack URL
Comentário por Gabriel Lau — 17/06/2009 @ 2:42 am
Aew Leandro… me deparei com esse mesmo problema um tempo atrás… mas o meu ia mais além. Além de poder salvar o arquivo como Excel… eu teria que poder manipular esse documento online (parecido com o Google Docs)… e integrá-lo com o PHP para salvar as informações num banco de dados… porém, nao encontrei meios de fazer isso =/ … vou ter que fazer na gambiarra mesmo com os velhos formulários… xD
E… em relação a essa formatação: se eu quiser editar o visual dela… adicionando bordas…. cor de fundo… cor da letra… bordas e mesclar as células e talz… eu teria de fazer usando o CSS ou o código HTML antigão mesmo???
Comentário por Wandola — 13/04/2010 @ 9:00 pm
Muito boa, a dica. Valeu..
Comentário por Yuhara — 11/11/2011 @ 10:25 am
Tava precisando desse script, muito bom o post…. Vlw
Comentário por Márcio Vascs — 02/01/2012 @ 5:03 pm
Amigo, boa tarde.
Como faço para forçar que o documento seja salvo em uma determinada pasta?
Grande abraço e obrigado.
Comentário por leandro garcia — 02/01/2012 @ 5:58 pm
Olá Marcio, cara não tem como você pelo código setar a pasta alvo do download do usuário. Os navegadores não permitem isso. Seria uma falha de segurança. Imagine, se por exemplo, um site força o download de alguma coisa na pasta core o windows por exemplo, poderia causar um estrago.