Close

Not a member yet? Register now and get started.

lock and key

Sign in to your account.

Account Login

Forgot your password?

30 Sep Posted by in PHP | 8 comments

Gerar arquivos Excel e Word com php

Gerar arquivos Excel e Word com php
 

Você ja precisou de um relatório com os dados vindo do banco e precisava exportar o resultados para um arquivo Excel ou Word?

Abaixo segue um exemplo simples de como colocar um conteúdo vindo do php em um arquivo Excel (.xls) ou Word (.doc) com poucas linhas.

// Definindo o tipo de arquivo (Ex: msexcel, msword, pdf ...)
header("Content-type: application/msexcel");

// Formato do arquivo (Ex: .xls, .doc, .pdf ...)
header("Content-Disposition: attachment; filename=MeuArquivo.xls");

// Montando a tabela
$html = "<table border='2px #000'>";
$html .= "<tr>";
$html .= "<td>Exemplo 1</td>";
$html .= "<td>Exemplo 2</td>";
$html .= "<td>Exemplo 3</td>";
$html .= "<td>Exemplo 4</td>";
$html .= "<td>Exemplo 5</td>";
$html .= "<td>Exemplo 6</td>";
$html .= "<td>Exemplo 7</td>";
$html .= "</tr>";
$html .= "<tr>";
$html .= "<td>1</td>";
$html .= "<td>2</td>";
$html .= "<td>3</td>";
$html .= "<td>4</td>";
$html .= "<td>5</td>";
$html .= "<td>6</td>";
$html .= "<td>7</td>";
$html .= "</tr>";
$html .= "</table>";

// Jogando o conteúdo para o arquivo		
print($html);

Com o código acima você pode enviar relatórios vindo de banco de dados e exportar para xls, doc, pdf ou o formato que preferir de uma forma fácil mudando somente os parametros dos comandos headers.

Espero que ajude!


  1. Rety14:15:47 30/09/2010

    Perfeito! Obrigada!

  2. Jonathas01:07:32 25/01/2011

    Não sei pq dá este erro, copiei o código e colei dentro do meu localhost e abri, pode me ajudar?
    Warning: Cannot modify header information – headers already sent by (output started at C:xampphtdocsCursosalva.php:1) in C:xampphtdocsCursosalva.php on line 3

    • Ronie Neubauer13:23:15 01/02/2011

      Isso acontece quando existe algum tipo de print no código ou as vezes não fechou a tag php ou não existe um enter no arquivo depois do ?>.

      Para evitar isso ligamos o buffer de saida com o seguinte comando no inicio da função:

      ob_start();

  3. Romeu Rodrigues13:09:43 15/02/2011

    Acontece o mesmo erro comigo, não tem espaço após o ?> e o ob_start tb n rolou

    • Ronie Neubauer10:32:34 16/02/2011

      Esse erro acontece quando na pagina ocorre algum print, echo, uma linha em branco antes do <?php ou até um espaço antes do <?php, pois o header vai modificar cabeçalho e não pode existir nenhuma saida, uma linha em branco antes do <?php seria considerado um echo de uma linha em branco.

      Normalmente resolve se você colocar o ob_start(); logo após a abertura do <?php, mesmo que na pagina tenha print, echo, desde que o <?php esteja sem espaço antes.

      Ficando assim:
      <?php ob_start();

      Em ultimos casos se mesmo com php colado não funcionar e se você quizer, me manda o código da pagina que você está tentando, eu posso ver se consigo reproduzir o erro nela e tentar arrumar.

  4. Marcelo Mota20:22:04 05/07/2011

    Blz… funcionou 100%. Obg.

  5. Alan Albuquerque23:11:12 24/08/2011

    Valeu cara, tava precisando simples e objetivo.

  6. Diogo Luiz18:13:01 26/04/2012

    muito bom!!! funcionou perfeito!!! obrigado!

Leave a Reply