Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

F-gos

Exportar uma tabela do banco myspl para excel

Recommended Posts

Pessoal boa tarde!

 

gostaria de saber se ja existe um script pronto ou como fais pra gerar um botão no site para exportar a uma tabela do banco de dados e salvar como excel.

 

Isso é necessário para inserir os clientes cadastrados no site no sistema de gestão da empresa.

 

OK! se alguem puder ajudar agradeço. T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Rapaz, salvar direto como excel é complicado...

até hoje nunca vi um script ou API que fosse 100% garantido

o que você pode tentar fazer é se conectar via odbc a um arquivo excel, como se ele fosse um banco de dados, e inserir os dados que você quer, mas pra isso seu servidor teria que ser windows e ter o office instalado (ou pelo menos o driver odbc do excel), aí você poderia ter um arquivo "mãe" e sempre que você precisar gerar um novo, você copia ele, escreve na cópia e disponibiliza um link da cópia pro seu usuário.

 

outra solução mais simples, é simplesmente criar um arquivo ".csv", que é apenas um arquivo de texto simples, com dados separados por vírgula (ou ponto-e-vírgula, depende da versão do excel), o excel abre esse arquivo normalmente, como se fosse um arquivo próprio dele, só não tem formatação, nem funções armazenadas.

Compartilhar este post


Link para o post
Compartilhar em outros sites

OK! neto.. mas nesse caso acho que o .csv é uma boa porque umas das exigencias do cliente é o formato excel para poder ser importado no banco de dados do sistema dele... outra coisa .... esse botão de exportar vai ficar no painel de controle do site. O cliente vai entrar e exportar os dados dos clientes cadastrados no site e impportar no sistema.

 

entendeu!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal bom dia!

 

Consegui fazer o botão para exportar os dados de uma tabela do banco para uma planilha de excel. ta funcionando normal.. o código esta da seguinte maneira:

 


[b] //Seleciona os campos de uma tabela
[/b] $conn = mysql_connect("hostdobanco", "banco", "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 usuarios order by ID ";
   $resultado = mysql_query($consulta);
   if($resultado==true){
  	while($linha = mysql_fetch_array($resultado)){
     	$myArr=array($linha['ID'],$linha['Razao_Social'],$linha['Nome_Fantasia'],$linha['Endereco'],$linha['Bairro'],$linha['cidade'],$linha['estado'],$linha['Pais'],$linha['CEP'],$linha['CNPJ'],$linha['RG'],$linha['DDD'],$linha['Fone'],$linha['Email'],$linha['MSN'],$linha['Nome1'],$linha['Nome2'],$linha['Nome3'],$linha['Nome4'],$linha['DDD1'],$linha['DDD2'],$linha['DDD3'],$linha['DDD4'],$linha['Fone1'],$linha['Fone2'],$linha['Fone3'],$linha['Fone4'],$linha['Contato'],$linha['Contato1'],$linha['Contato2'],$linha['Contato3'],$linha['Contato4']);
     	$excel->writeLine($myArr);
  	}
   }

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

 

mas agora surgiu a necessidade de fazer o mesmo com os dados gerados no carrinho de compras (pedidos).

 

Quando é finalizado o pedido, é enviado um e-mail para o administrador com informações sobre o pedido (item - quantidade - valor). esses dados são passados por variáveis. ($item, $quatidade, $valor)..

 

 

 

Nesse caso os dados vem das variaveis e formam o excel e não do banco..... como alterar o código para funcionar dessa forma???? crio uma array????

Compartilhar este post


Link para o post
Compartilhar em outros sites

Nesse caso os dados vem das variaveis e formam o excel e não do banco..... como alterar o código para funcionar dessa forma???? crio uma array????

 

Já deveria ter criado para organizar o carrinho.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala evandro beleza... cara seguinte vou posta o codigo aqui pra você dar uma olhada... na verdade não manjo muito de php e o programador que fez o sistema foi demitido.. então to tendo que fazer adptações sozinho agora...heheheh...

 

o codigo ja lista os dados do carrinho, mas tem muito relacionamento entre as tabelas, mas no e-mail que é enviado os dados do pedido ( itensdo pedido) vão com as informações corretas.. (finalização do pedido) só preciso saber como pegar essas mesmas informações passadas nas variaveis $ID_Pedido - $quantidade - $codigo - $txt_tamanho - $sub_Total e jogar numa planilha e salvar ela no serv.

 

finalizar.php

 

<?php
session_start("cesta");
session_start("permissao");
if ($autorizacao != 'Cliente') {
header("Location:../../index.php?Alerta=2");
}

require("../../config/config.php");

   

 

$data = date("Y-m-d");

$hora = date("H:i:s");

 

 

  

// Grava pedido

$db = mysql_connect("$host", "$usuario", "$senha") or die ("Configuração de Banco de Dados Errada!");

mysql_select_db("$dbNome", $db) or die ("Banco de Dados Inexistente!");

 

$sql = "INSERT INTO pedidos (ID_Usuario, Data, Hora, Status) VALUES ('$Cad_ID', '$data', '$hora', 'Novo')";

 

 

$conexao = mysql_connect("$host", "$usuario", "$senha")

or die ("Configuração de Banco de Dados Errada!");

 

$db = mysql_select_db("$dbNome")

or die ("Banco de Dados Inexistente!");

 

$sql = mysql_query($sql) 

or die ("Houve erro na gravação dos dados.");

 

// Fim Grava pedido

 

// GRava itens

 

//Recuperar id do pedido

$db = mysql_connect("$host", "$usuario", "$senha") or die ("Configuração de Banco de Dados Errada!");

mysql_select_db("$dbNome", $db) or die ("Banco de Dados Inexistente!");

 

$ID_Pedido = mysql_insert_id($db);

////////////

 

while (list($indice, $conteudo) = each($dados)){ // 1

if(!empty($conteudo) ){ // 2

 

$db = mysql_connect("$host", "$usuario", "$senha") or die ("Configuração de Banco de Dados Errada!");

mysql_select_db("$dbNome", $db) or die ("Banco de Dados Inexistente!");

//BUSCA NO BANCO DE DADOS////////
  $explode_conteudo = explode('-',$conteudo);
  $codigo_produto = $explode_conteudo[0];
  $codigo_tamanho = $explode_conteudo[1];
  if( trim($codigo_tamanho) == '')
        	$codigo_tamanho = 'NULL';
  $conteudo = $codigo_produto;

$sql_p = mysql_query("SELECT * FROM produtos WHERE ID_Produto = $conteudo");

 

while ($l=mysql_fetch_array($sql_p)) { //3

 $id_Produto = $l["ID_Produto"];

  $valor1 = $l["Valor1"];

  $valor2 = $l["Valor2"];

 

   if ($Tb == "1"){ 

    $valor = $valor1;

   }

   

   if ($Tb == "2"){ 

    $valor = $valor2;

   } 

 

// Grava 

$db = mysql_connect("$host", "$usuario", "$senha") or die ("Configuração de Banco de Dados Errada!");

mysql_select_db("$dbNome", $db) or die ("Banco de Dados Inexistente!");

 

$sql = "INSERT INTO itens (ID_Pedido, Codigo, Quantidade, Valor, ID_Tamanho) VALUES ('$ID_Pedido', '$id_Produto', '$quantia[$conteudo]', '$valor', $codigo_tamanho)";

echo $sql;


$conexao = mysql_connect("$host", "$usuario", "$senha")

or die ("Configuração de Banco de Dados Errada!");

 

$db = mysql_select_db("$dbNome")

or die ("Banco de Dados Inexistente!");

 

$sql = mysql_query($sql) 

or die ("Houve erro na gravação dos dados.");

  }  //3

 } //2

}  //1

// Fim GRava itens

 

 

// envia email

 

$sql_user = mysql_query("SELECT * FROM usuarios WHERE ID = '$Cad_ID'");

 

while ($l=mysql_fetch_array($sql_user)) {   // Inicio while    	

       	$id = $l["ID"];

       	$razao_Social = $l["Razao_Social"];

       	$nome_Fantasia = $l["Nome_Fantasia"];

       	$endereco = $l["Endereco"];

       	$bairro = $l["Bairro"];

       	$cidade = $l["Cidade"];

       	$uf = $l["UF"];

       	$cep = $l["CEP"];

       	$cnpj = $l["CNPJ"];

       	$rg = $l["RG"];

       	$ddd = $l["DDD"];

       	$fone = $l["Fone"];

       	$email = $l["Email"];

       	$tabela = $l["Tabela"];

	

}

 

$sql_ped = mysql_query("SELECT * FROM pedidos WHERE ID_Pedido='$ID_Pedido'");

 

 

 function colocaPonto($v) { 

   $array1 = array(",");   

   $array2 = array("."); 

   return str_replace( $array1, $array2, $v); 

 } 

 

 function retiraPonto($v) { 

   $array1 = array(".");   

   $array2 = array(","); 

   return str_replace( $array1, $array2, $v); 

 } 

 

 

while ($l=mysql_fetch_array($sql_ped)) {   // Inicio while

	$data = $l["Data"];

	$hora = $l["Hora"];

 

// Inicio converte data EUA para BR

$d=explode("-",$data); 

$c=array_reverse($d); 

$data_br=implode("/",$c); 

// Fim converte data EUA para BR 

 

}

 

 

$mensagem  = "\n";

$mensagem .= "==========================================\n";

$mensagem .= "formulario de PEDIDO \n";

$mensagem .= "==========================================\n";

$mensagem .= "\n";

$mensagem .= "PEDIDO N.: $ID_Pedido\n";

$mensagem .= "Data: $data_br | Hora: $hora\n";

$mensagem .= "\n";

$mensagem .= "==========================================\n";

$mensagem .= "\n";

$mensagem .= "Razão Social: $razao_Social\n";

$mensagem .= "CNPJ/CPF: $cnpj\n";

$mensagem .= "\n";

$mensagem .= "Endereço: $endereco\n";

$mensagem .= "Bairro: $bairro\n";

$mensagem .= "Cidade: $cidade - $uf\n";

$mensagem .= "Fone: $ddd - $fone\n";

$mensagem .= "Email: $email\n";

$mensagem .= "\n";

$mensagem .= "==================\n";

$mensagem .= "ITENS DO PEDIDO\n";

$mensagem .= "==================\n";

$mensagem .= "\n";

 

 

$sql_itens = mysql_query("SELECT * FROM itens WHERE ID_Pedido='$ID_Pedido'");

 

$Valot_Total = "0";

 

//INICIO TABELA////////

while ($l=mysql_fetch_array($sql_itens)) {   // Inicio while

	$id_Item = $l["ID_Item"];

	$id_Pedido = $l["ID_Pedido"];

	$id_Produto = $l["Codigo"];

	$quantidade = $l["Quantidade"];

	$valor = $l["Valor"]; 
	
	$tamanho = $l["ID_Tamanho"];
	
	$txt_tamanho = '';
	$sql_tamanho = mysql_query("SELECT Descricao FROM pro_tamanhos WHERE ID_Tamanho = ".$tamanho);
	if(mysql_num_rows($sql_tamanho) > 0)
  	$txt_tamanho = ' | Tamanho = '.mysql_result($sql_tamanho,0,0);

 

 $valor_ponto = colocaPonto($valor);

 

 $sub_Total = $quantidade * $valor_ponto;

 $Valor_Total = $Valor_Total + $sub_Total;

 

 $sub_Total = number_format($sub_Total,2);

 $sub_Total = retiraPonto($sub_Total);

  

$sql_prod = mysql_query("SELECT * FROM produtos WHERE ID_Produto='$id_Produto'");

//INICIO TABELA////////

while ($l=mysql_fetch_array($sql_prod)) {

 

  $id_Produto = $l["ID_Produto"];

  $codigo = $l["Codigo"];

  $categoria = $l["Categoria"];

 

}

 

[b]$mensagem .= "Quantidade: $quantidade  |  Iten: $codigo ".$txt_tamanho." |  SubTotal: R$ $sub_Total\n";[/b]

 

}

 

$Valor_Total = number_format($Valor_Total,2);

$Valor_Total = retiraPonto($Valor_Total);

 

$mensagem .= "\n";

$mensagem .= "\n";

$mensagem .= "Valor Total: R$ $Valor_Total\n";

$mensagem .= "\n";

//////////////////////

 

 

 

//DESTINO

mail("$email", "PEDIDO", "$mensagem", "From: mail");

mail(" mail", "PEDIDO", "$mensagem", "From: mail");

 

header("Location:finalizar_ok.php");

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, se você já conseguiu trabalhar com o PHPExcel, basta gravar as informações que sejam pertinentes ao objeto excel antes de efetuar a saída. Já fez algum teste? Porque não experimenta? Poste os possíveis erros. A lógica e base você já tem, porque já fez.

Compartilhar este post


Link para o post
Compartilhar em outros sites

evandro na verdade para exportar os clientes para excel.. utilizei um outro script pareciDo com O PHPEXCEL

que busca as informações direto na tabela do banco de dados.

 

e agora preciso saber como fazer essa adptação dele para pegar os valores das variaveis... entendeu...veja o processo de pegar do banco.

 


 //nome do arquivo para salvar.
	$excel=new ExcelWriter("clientes.xls");

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


//Seleciona os campos de uma tabela
$conn = mysql_connect("hostdobanco", "banco", "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 usuarios order by ID ";
   $resultado = mysql_query($consulta);
   if($resultado==true){
        while($linha = mysql_fetch_array($resultado)){
        $myArr=array($linha['ID'],$linha['Razao_Social'],$linha['Nome_Fantasia'],$linha['Endereco'],$linha['Bairro'],$linha['cidade'],$linha['estado'],$linha['Pais'],$linha['CEP'],$linha['CNPJ'],$linha['RG'],$linha['DDD'],$linha['Fone'],$linha['Email'],$linha['MSN'],$linha['Nome1'],$linha['Nome2'],$linha['Nome3'],$linha['Nome4'],$linha['DDD1'],$linha['DDD2'],$linha['DDD3'],$linha['DDD4'],$linha['Fone1'],$linha['Fone2'],$linha['Fone3'],$linha['Fone4'],$linha['Contato'],$linha['Contato1'],$linha['Contato2'],$linha['Contato3'],$linha['Contato4']);
        $excel->writeLine($myArr);
        }
   }

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

Compartilhar este post


Link para o post
Compartilhar em outros sites

fala evandro... cara não sei muita coisa de php.. como disse esse sistema não feito por mim... logica não sei nada tbm... então... to tentando me virar aqui.... se você puder me ajudar dando as noções vou tentando aqui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Bom, você precisava pegar as informações do banco, e gravar em planilha.

 

Agora você precisa gravar as informações do e-mail e gravar em planilha.

 

Veja que só mudamos uma palavra das duas frases.

 

É exatamente isso que você vai mudar no código, a origem. Vai procurar quais linhas tratam as variáveis que vêm do banco, e trocar pelas variáveis que iriam/vão para o e-mail.

 

Antes você precisava registrar "razão social, nome fantasia, endereço e bairro".

Agora você precisa registrar "id do pedido, quantidade, codigo, txt tamanho e subtotal".

 

Não consegue encontrar as semelhanças??

 

$gravar = array($ID_Pedido,$quantidade,$codigo,$txt_tamanho,$sub_Total);
$excel->writeLine($gravar);

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.