DiegoPires.net

  • rss
  • Início
  • Sobre
  • Fale Comigo

Como gerar Excel com o PHP - Parte 1

Diego Pires | 17/04/2008
//-->

Microsoft Excel (Windows) 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:

  • Como gerar Excel com o PHP - Parte 2
  • Atualizando
  • O PHP precisa da nossa ajuda
  • Trabalhando com datas no PHP
  • SkyDrive, da MS, no Brasil

Se gostou do texto e não quer perder as atualizações, se inscreva no meu feed RSS!

Categorias
Tecnologia
Tags
excel, php
Comentários RSS
Comentários RSS
Trackback
Trackback

« Novidade no Registro.br Cuidado com os temas do WordPress »

8 repostas

Como gerar Excel com o PHP - Parte 2 | DiegoPires.net

[...] 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 [...]

Filipe Mattos mendes

Amigo muito show seus arquivo me ajudou de forma objetiva

Filipe Mattos mendes | 06/04/2009

Amigo muito show seus arquivo me ajudou de forma objetiva e discreta.
Mais eu tive um problema. Firefox, IE6 o mesmo funciona normalmente já no IE7 ele da erro.
Existe alguma configurações no IE7 para utilizar a rotina acima, ou deveria funcionar normalmente. ??

vinicius

parabéns pela iniciativa!

vinicius | 17/04/2009

parabéns pela iniciativa!

Thiago Schoba

Muito bom o tutorial! Acho que todos precisam de tutoriais simples,

Thiago Schoba | 29/07/2009

Muito bom o tutorial!
Acho que todos precisam de tutoriais simples, 100% práticos e úteis!

Abraço!

Mano Jr

Muito Bom, mas tipo assim... Como que eu faço para gerar

Mano Jr | 09/11/2009

Muito Bom, mas tipo assim…
Como que eu faço para gerar um relatório somente das checkbox selecionadas (Cada checkbox representa uma coluna do DB).

Se poder me ajudar, agradeço desde já.

Heitor

Pessoal, só uma pequena correção para funcionar também com Internet

Heitor | 10/11/2009

Pessoal, só uma pequena correção para funcionar também com Internet Explorer:

header(”Content-Disposition: attachment; filename=’relatorio.xls’”);

>>Notem as aspas simples no nome do arquivo!

Abraço!

Heitor

Tambpem notei que com o IE, é bom comentar a

Heitor | 10/11/2009

Tambpem notei que com o IE, é bom comentar a linha:

header(”Content-type: application/force-download”);

Pois com ela o download acontece, mas dá um alert estranho de erro.

Alex

Gostaria de saber se existe alguma forma de abrir um

Alex | 20/12/2009

Gostaria de saber se existe alguma forma de abrir um gráfico do Excel na própria página em PHP. Ou seja, realizar uma consulta no BD e a partir deste gerar um gráfico do Excel na página em PHP?

Deixar um comentário

Você pode usar essas TAGS : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Assine

Links

  • Flep
  • Plinio Torres

Loja

  • Câmeras Digitais
  • Celulares
  • Computadores
  • Ipod
  • Laptop`s
  • Monitores LCD
  • Playstation 3
  • TV`s LCD
  • Xbox 360

Tags

3G antivírus apple banda larga Beta boo-box busca celular chave crack datas excel firefox Firefox 3 gmail google gspace Internet Explorer iphone Kaspersky key lançamentos Linux loja virtual microsoft monetização notebook oi openid orkut php pirata plugin Programação Recorde serial skydrive speedy submarino Tecnologia velox Web Standarts Windows windows vista WordPress

Arquivos

  • dezembro 2008 (2)
  • setembro 2008 (2)
  • julho 2008 (3)
  • junho 2008 (12)
  • maio 2008 (10)
  • abril 2008 (13)
  • março 2008 (13)
  • fevereiro 2008 (7)

  • 12 Usuários Online

Categorias

  • Diversão
  • Humor
  • Open Source
  • Programação
  • Tecnologia
  • Windows
  • WordPress

Enquete

O conteúdo do site foi útil para você?

Resultados

Loading ... Loading ...

Mais Visitados

  • Ativação e Validação do Windows Vista - 229.407 views
  • Como validar o Windows Vista Pirata - 179.208 views
  • Ativação e Validação do Windows Vista SP1 - 136.689 views
  • Chaves para o Kaspersky 6 e 7 (novas) - 96.019 views
  • Novas Chaves para o Kaspersky (Antivírus e Internet Security) - 91.424 views
  • Chave para o Kaspersky Internet Security 7 - 87.072 views
  • Chaves Kaspersky 7 e 8 (novas) - 53.694 views
  • Retirar Aviso de Cópia Pirata do Windows Vista - 33.481 views
  • Kaspersky Gratuito - Beta 2009 - 27.778 views
  • Kaspersky 7 e 8 (KAV e KIS) - 27.262 views

11.321 comentários de spam
bloqueados pelo
Akismet
rss Comentários RSS valid xhtml 1.1 design by jide powered by Wordpress get firefox