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 »

11 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?

Karla Rodrigues

Vocês perceberam que pelo excel 2007 ele mostra a seguinte

Karla Rodrigues | 07/06/2010

Vocês perceberam que pelo excel 2007 ele mostra a seguinte mensagem :
“o arquivo que você esta tentando abrir, ‘teste.xls’, está em um formato diferente do especificado pela extensão do arquivo.
Verifique se o arquivo não está corrompido e se é de uma fonte confiável antes de abri-lo. Deseja abrir o arquivo agora?”

Por acaso alguem sabe como retirar esse erro?

Agradeço desde já.

Karla Rodrigues

Na realidade já descobri como resolver isso, a boa noticia

Karla Rodrigues | 11/06/2010

Na realidade já descobri como resolver isso, a boa noticia que tem solução a ruim que perdemos o style…

Então esse erro esta ocorrendo por causa que a microsoft no excel 2007 não aceita mais o html, mas o interpreta, assim dando aquela mensagem. Para que isso não ocorra mais é necessario realizar a formatação das linhas e colunas com /t e /n, onde o /t é para uma nova coluna e o /n para pular uma linha.
Assim infelismente não podemos mais deixar mais colorido ou com a letra de desejamos, o que é uma pena.
O broffice funciona normamente, assim não havendo a necessidade de mudar para ele.
Att.
Karla Rodrigues

djalma

O google docs não consegue reconhecer os arquivos gerados.. alguma

djalma | 15/08/2010

O google docs não consegue reconhecer os arquivos gerados.. alguma sugestão?

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)

  • 8 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 - 379.677 views
  • Como validar o Windows Vista Pirata - 270.287 views
  • Ativação e Validação do Windows Vista SP1 - 168.822 views
  • Chaves para o Kaspersky 6 e 7 (novas) - 145.212 views
  • Novas Chaves para o Kaspersky (Antivírus e Internet Security) - 119.280 views
  • Chave para o Kaspersky Internet Security 7 - 100.957 views
  • Chaves Kaspersky 7 e 8 (novas) - 63.819 views
  • Retirar Aviso de Cópia Pirata do Windows Vista - 59.499 views
  • Kaspersky Gratuito - Beta 2009 - 31.729 views
  • Kaspersky 7 e 8 (KAV e KIS) - 30.200 views

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