Como exportar tabelas HTML para o excel usando PHP

Como exportar tabelas HTML para o excel usando PHP

Olá, pessoal!

Quem aqui nunca pensou em exportar sua tabela HTML para o Excel? Esta funcionalidade é muito útil quando se pretende usar os recursos do programa para manipular os dados ou até mesmo para salvar relatórios para acessos futuros.

Neste pequeno tutorial, mostrarei como é simples criar este mecanismo. Trata-se apenas de forçar o download do arquivo através da função header(), que é nativa do PHP.

Em primeiro lugar, atribuiremos o conteúdo HTML da nossa tabela a uma variável chamada $html (ou o nome que você preferir):

<?php

$html = "
<table width='90%' border='1'>
	<tr>
		<th>Título </th>
		<th>Título 2</th>
		<th>Título 3</th>
	</tr>
	<tr>
		<td>Dados 1</td>
		<td>Dados 2</td>
		<td>Dados 3</td>
	</tr>
	<tr>
		<td>Dados 4</td>
		<td>Dados 5</td>
		<td>Dados 6</td>
	</tr>
	<tr>
		<td>Dados 7</td>
		<td>Dados 8</td>
		<td>Dados 9</td>
	</tr>
</table>
";

?>

Depois, basta forçarmos o download do arquivo em formato “.xls“, imprimindo o conteúdo da nossa variável $html:

<?php
   // Determina que o arquivo é uma planilha do Excel
   header("Content-type: application/vnd.ms-excel");   

   // Força o download do arquivo
   header("Content-type: application/force-download");  

   // Seta o nome do arquivo
   header("Content-Disposition: attachment; filename=file.xls");

   header("Pragma: no-cache");

   // Imprime o conteúdo da nossa tabela no arquivo que será gerado
   echo $html;
?>

Bem simples, não?

Existem outras formas de se obter o mesmo resultado e por isso, cabe ao desenvolvedor escolher a maneira que desejar.

Espero ter ajudado com este simples tutorial. Comentários, críticas construtivas, sugestões e discussões sobre o assunto são muito bem vindos.

Em breve postarei novos tutoriais e boas dicas de PHP. Até a próxima!

0 0 votos
Classificação do artigo
Subscribe
Notify of
guest
4 Comentários
Inline Feedbacks
Exibir todos os comentários
Paulo Diovani Gonçalves
Paulo Diovani Gonçalves
13 anos atrás

Que gambiarra, hein. :/

Diego Martins
Diego Martins
13 anos atrás

Gostaria de sugerir uma forma mais eficiente e mais curta que gere um mesmo resultado? Já que tens solução melhor, poderia compartilhar com os nossos usuários? Grato pelo comentário.

Lucas Panik
Lucas Panik
12 anos atrás

Como trabalhar com “sub-tabelas” num mesmo arquivo?

Marcelo Dutra Bueno
12 anos atrás

Muito bueno, gostei e vou usar.

4
0
E aí? O que achou? Por favor comente.x