Exportar MySQL para XLS

Publicado por Johny 14/09/2006

[ Hits: 20.186 ]

Download excel.php




Script para exportar os dados de uma tabela em MySQL para o formato XLS (Excel/BrOffice.org Calc).

  



Esconder código-fonte

<?php

/* 

Adaptado de : http://www.phpfreaks.com/tutorials/114/0.php

*/


//Configuração da BD
$mysql_host="localhost";
$mysql_login="root";
$mysql_pass="password";
$mysql_db="nomedabasededados";

$connect = mysql_connect($mysql_host, $mysql_login, $mysql_pass) or die ('Erro Connect');
    mysql_select_db($mysql_db) or die ('Erro Select DB');

//Nome da tabela a ser exportada
$table="nomedatabela";

    $select = "SELECT * FROM ".$table;                
    $export = mysql_query($select);
    $fields = mysql_num_fields($export); 
    
    for ($i = 0; $i < $fields; $i++) {
        $header .= mysql_field_name($export, $i) . "\t"; 
    }
        
    while($row = mysql_fetch_row($export)) {
        $line = '';
        foreach($row as $value) {                                            
            if ((!isset($value)) OR ($value == "")) {
                $value = "\t";
            } else {
                $value = str_replace('"', '""', $value);
                $value = '"' . $value . '"' . "\t";
            }
            $line .= $value;
        }
        $data .= trim($line)."\n";
    }
    $data = str_replace("\r","",$data); 
    
    if ($data == "") {
        $data = "\n(0) Records Found!\n";                        
    }
    else{
        $hoje=date("Y_m_j");              
        header("Content-type: application/x-msdownload");
        header("Content-Disposition: attachment; filename=".$table."_".$hoje.".xls");
        header("Pragma: no-cache");
        header("Expires: 0");
        print "$header\n$data";  
    }
    
?>

Scripts recomendados

Gravando conteudo de uma caixa de texto no banco de dados

Script SQL para banco de sistemas de postagens de artigos 1.0

Portal dh4v01

Função para somar datas usando MySQL e PHP

Script Para Conectar-se Ao Banco de dados PostGreSQL [golfinho/Elefante]


  

Comentários
[1] Comentário enviado por kravetz em 04/10/2006 - 11:34h

Script bom por ser de fácil configuração. É só digitar o nome do banco de dados e o da tabela MySQL (e a senha, obviamente), que ele faz o resto por conta própria, gerando um arquivo xls.
Funciona bem para o Microsoft Excel. Já o BrOpenOffice Calc 2.0 ele não abriu o arquivo gerado, não sei porquê.

[2] Comentário enviado por lardinho em 21/09/2007 - 22:49h

opa, cara tava vendo teu script, me tira so uma duvida, quero mostrar apenas alguns campos do mysql, como faria?

[3] Comentário enviado por muitobem em 22/09/2007 - 18:35h

Para mostrar apenas alguns campos alteras a seguinte linha

$select = "SELECT * FROM ".$table;
e onde tá * , substituis pelo nome dos campos da tabela que queres mostrar.

Ex:
$select = "SELECT Nome,Morada,Telefone FROM ".$table;

[4] Comentário enviado por jetro em 11/10/2007 - 15:51h

Amgo...

Parabéns pelo Script. Muito me ajudou.
Porém, na versão 4 do Mysql o mysql_num_fields não funciona. Andei sondando e tentei substituir por mysql_field_count mas mesmo assim não funcionou.
Vc pode me ajudar?
Abraço
Jetro

[5] Comentário enviado por garciaon em 27/01/2008 - 18:16h

Opa, amigo! Utilizei seu script e rodou perfeitamente. Muito obrigado, poupou um trabalhão!

Aquele abraço,

Pedro

[6] Comentário enviado por algmelo em 14/03/2008 - 17:57h

Olá, amigo. Td bem? Muito legal o script! Funcionou perfeitamente!

Só uma coisa que poderia ser implantado, é pra formatar as linhas, pelo menos pra colocar uma cor de fundo no cabeçalho, pra diferenciar.

Se pudéssemos escolher em entre a font do cabecalho, cor da font, cor de fundo do cabecalho, font das linhas e cor das linhas ( pelo menos fazer uma "zebrinha", tipo, cinza, branco, cinza, branco ), iria ficar bárbaro!

São apenas sugestões. O script cumpre o que promete!

Abração, sucesso e que Deus abençoe!

[7] Comentário enviado por c2nunes em 16/04/2010 - 13:33h

Olá Johny, parabéns.

Seu código caiu como uma luva para meu aplicativo. Entretanto, em minha tabela há campo texto e valores. Seu código está tratando todos como texto e assim tras ponto ao envés de virgula para centavos. Como corrijo isso? Tens uma solução? Sou aprendiz em programação MYSQL e PHP.

Abs.

[8] Comentário enviado por c2nunes em 01/12/2010 - 10:52h

Jonny, boa tarde.

Como posso alterar e formatar o título da planilha na exportação?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts