PUBLICIDADE
Este código tem nota
9,82

Autor

rlpa

Rodrigo Araujo

membro deste abril de 2007

Enquete

Você acredita que um dia o Firefox será mais utilizado que o IE?
PUBLICIDADE

Exportar para Excel os dados de uma tabela MySQL


Quem desenvolve para web sabe que exportar informações para formatos diferentes do bom e velho HTML é sempre um desafio. As aplicações web estão cada vez mais cheias de recursos e ainda mais parecidas com as aplicações desktops.

Com este script é possível criar uma planilha Excel de dados exportados de uma tabela no MySQL.

Este código utiliza o objeto ExcelWriter que é codificado no arquivo "excelwriter.inc.php".
/*Veja exemplo abaixo e copie a classe que segue em anexo*/
<?php
   //Incluir a classe excelwriter
   include("excelwriter.inc.php");

   //Você pode colocar aqui o nome do arquivo que você deseja salvar.
    $excel=new ExcelWriter("excel3.xls");

    if($excel==false){
        echo $excel->error;
   }

   //Escreve o nome dos campos de uma tabela
   $myArr=array('CODIGO','DESCRICAO','VALOR');
   $excel->writeLine($myArr);

   //Seleciona os campos de uma tabela
	$conn = mysql_connect("localhost", "usuario", "senha") or die ('Não foi possivel conectar ao banco de dados! Erro: ' . mysql_error());
	if($conn)
	{
	mysql_select_db("banco", $conn);
	}
   $consulta = "select * from produtos order by descricao";
   $resultado = mysql_query($consulta);
   if($resultado==true){
      while($linha = mysql_fetch_array($resultado)){
         $myArr=array($linha['codigo'],$linha['descricao'],$linha['valor']);
         $excel->writeLine($myArr);
      }
   }

    $excel->close();
    echo "O arquivo foi salvo com sucesso. <a href=\"excel3.xls\">excel.xls</a>";
?>

<?
    //Outro exemplo

    $myArr=array("Name","Last Name","Address","Age");
    $excel->writeLine($myArr);

    $excel->writeRow();
    $excel->writeCol("Manoj");
    $excel->writeCol("Tiwari");
    $excel->writeCol("80 Preet Vihar");
    $excel->writeCol(24);

    $myArr=array("Harish","Chauhan","115 Shyam Park Main",21);
    $excel->writeLine($myArr);

?>

ArquivoTipoTamanhoHits 
excelwriter.inc.phpArquivo PHP8,3 Kb7381Baixar o Arquivo
exemploexcel.phpArquivo PHP1 Kb5665Baixar o Arquivo
Sim   Não   Este código foi útil para você?
NotaComentário
10
infowebs comentou em 29/4/2012

ERRO

Olá boa tarde então baixei e não sei o que devo alterar. Alguem me ajuda
10
wildesig comentou em 14/12/2011

Dúvida

Rodrigo,

Muito boa esta postagem, já utilizei em vários projetos.

Tenho uma dúvida, como fazer se eu quiser exportar não a tabela toda mas sim uma consulta filtrada pelo Recordset por exemplo?

Abraços,

Willian
10
leandrinho comentou em 30/10/2011

Valeu pelo código...

Esse código é d+ basta entender um pouco de programação e da pra o fazer rodar. Obrigado ;) foi de grande utilidade...
10
quinhosp comentou em 22/9/2010

abrir .xls no browser?

no locahost o código .xls é gerado, mas como gerar no browser, tendo em vista que o link chama uma página não existente.
10
jonecarlos comentou em 19/5/2010

Acentuação

Olá,

Resolvi o problema da acentuação com htmlentities();

Abraços
8
stone comentou em 23/3/2010

Como fazer o contrário

Olá amigo, tudo bem ?
Poderia por gentileza explicar como utilizar esta Classe para fazer o contrário, tipo importar do EXCEL p/ o MYSQL? Muito obrigado. Stone
10
usertop comentou em 10/2/2010

ótimo

muito bom funciona muito bem
10
jhowwes comentou em 20/12/2009

Não encontro o arquivo gravado

Recebo a mensagem gravado com sucesso. Mas onde encontro o arquivo gravado?
10
robson1985 comentou em 9/12/2009

Acento

Funcionou perfeitamente,o único problema q tive foi com relação aos acentos e o Ç.No mysql tenho nomes com acento e com Ç q aparecem normalmente na tela do navegador quando mando listar,nessa exportação pro Excel aparece outra letra no lugar.Como resolvo?
10
rlpa comentou em 10/11/2009

Respondendo ao amigo Andre

Olá André, a criação do banco é bem simples, remotamente abra no seu painel de controle (linux ou windows) e abra o phpMyAdmin você pode criar facilmente o seu banco de dados. me mande seu e-mail que lhe passo mais detalhes.
10
rlpa comentou em 10/11/2009

Respondendo...

Olá Kátia, o nome do arquivo pode ser qualquer um, desde que você o referencie corretamente e quanto ao mysql, tanto faz tê-lo local ou remoto, o que deve atentar-se é como você fará a conexão com o banco.
10
kgomes comentou em 10/11/2009

Ajuda

Rodrigo,
Uma dúvida, este script que voce colocou acima eu tenho que salva com qual nome?

Outra coisa, tenho que ter um sistema mysql instalado em um servidor local ou se eu jogar simplismente dentro de meu site ja funciona??

Fico no aguardo!
10
teprom comentou em 29/6/2009

Banco de dados do exemplo...

Rodrigo,

Excelente trabalho !
Testei aqui e criou o arquivo.

Poderia colocar na página para download também o arquivo do banco de dados ? ( é que sou novato em MySQL ).

Muito obrigado...
Regras:
Os comentários seguem as seguintes regras:
  • Todos os comentários são enviados por membros cadastrados no site.
  • A pontuação de comentários de conteúdo do próprio membro não serão computados.
  • Os comentários serão pré-aprovados, porém a equipe do site revisará o conteúdo de todos os comentários podendo ser invalidados (inclusive a pontuação).
  • Os comentários precisam ter, obrigatóriamente, coerência sobre o conteúdo que será comentado.
  • O membro que atingir 5 comentários invalidados não poderá mais comentar dentro do site. Com isso o membro não poderá mais ganhar pontos com comentários.
  • Há um limite de 10 comentários por dia para cada membro.
  • Qualquer comentário após ter sido publicado poderá ser retirado através da opção ( denunciar)

Comente

     (ainda não tem cadastro? clique aqui!)


Máximo de 30 caracteres

Máximo de 255 caracteres