Ir para conteúdo

POWERED BY:

Arquivado

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

marcosfj1

[Resolvido] Enviar dados para salvar no excel

Recommended Posts

Seguinte galera seguindo uns codigos ai na internet achei um interessante, para salvar os dados no formato do excel(.xsl)

Eu queria colocar um botao SUBMIT pois os dados já sao mostrados na tabela, e ai ficava escolha do usuario clicar ou nao no botao e assim converter para excel. Entao eu fiz o seguinte coloquei o codigo dentro do envento ONCLICK do botao mas acabou nao dado certo....Olhem meu codigo

 

<tr align="right" >
     <td colspan="3" ><input type=BUTTON value="Converter" name="execel" onClick=
         "<?php 
		 $arquivo = 'pontos_clientes.xls';  

		 $html = '';  
		 $html .= '<table broder = "1">'; 
		 $html .= '<tr>';  
		 $html .= '<td colspan="3"></tr>';  
		 $html .= '</tr>';  
		 $html .= '<tr>';  
		 $html .= '<td colspan="3">Pontos Clientes</tr>';  
		 $html .= '</tr>';
		 $html .= '<tr>';  
		 $html .= '<td colspan="3"></tr>';  
		 $html .= '</tr>';  

		 $html .= '<tr>';  
		 $html .= '<td><b>Coluna 1</b></td>';  
		 $html .= '<td><b>Coluna 2</b></td>';  
		 $html .= '<td><b>Coluna 3</b></td>';  
		 $html .= '</tr>';  

		 $html .= '<tr>';  
		 $html .= '<td>L1C1</td>';  
		 $html .= '<td>L1C2</td>';  
		 $html .= '<td>L1C3</td>';  
		 $html .= '</tr>';  

		 $html .= '<tr>';  
		 $html .= '<td>L2C1</td>';  
		 $html .= '<td>L2C2</td>';  
		 $html .= '<td>L2C3</td>';  
		 $html .= '</tr>';  
		 $html .= '</table>';  

		header ("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  
		header ("Last-Modified: " . gmdate("D,d M YH:i:s") . " GMT");  
		header ("Cache-Control: no-cache, must-revalidate");  
		header ("Pragma: no-cache");  
		header ("Content-type: application/x-msexcel");  
		header ("Content-Disposition: attachment; filename=\"{$arquivo}\"" );  
		header ("Content-Description: PHP Generated Data" );  

		//echo $html;  
		exit;  
		?>


         ">
   </td>
   </tr>

 

No momento to salvando qualquer coisa nos dados da q estao enviados na tabela, porem se isso der certo de salvar no excel ai sim vou colocar um WHILE para trazer todos os dados da minha consulta MySQL....Mas primeiro tem q dar certo isso hehe

 

Alguem sabe me ajudar?

 

Valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo marcosfj1 onClick no HTML serve para eventos Javascript, chamadas AJAX dentre outros.

 

O correto seria você carregar um popup que gere o arquivo para download ou um ajax que crie o

arquivo em uma pasta, um link html ou algo neste sentido.

 

Pesquise no google sobre AJAX, Javascript, popups e HTML.

 

Estude antes de desenvolver ok? HTML é o conhecimento mínimo exigido para se desenvolver algo com PHP.

 

Abraços.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Concordo com o Periscuelo acima.

 

Cara você entendeu o codigo o que ele faz? a parte do header's ? Ele gera o html em xls e depois disponibiliza o arquivo para download, então não existe nada de evento, apenas um link para download normal...

 

Não precisa nem comentar isso certo ?

onclick="<?php echo 'tabela' header()... ?>"

Compartilhar este post


Link para o post
Compartilhar em outros sites

marcos, eu uso esse script para enviar os dados para excel (xls, csv, xlsx) e funciona, tanto através de tabela directa no mysql como de recordset.

é você ver e adaptar ás suas necessidades.

 

<?php require_once('Connections/conexao.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "") 
{
 if (PHP_VERSION < 6) {
   $theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
 }

 $theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);

 switch ($theType) {
   case "text":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;    
   case "long":
   case "int":
     $theValue = ($theValue != "") ? intval($theValue) : "NULL";
     break;
   case "double":
     $theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
     break;
   case "date":
     $theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
     break;
   case "defined":
     $theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
     break;
 }
 return $theValue;
}
}

$select = "SELECT * FROM table_name"; // ou recordset

$export = mysql_query ( $select ) or die ( "Sql error : " . mysql_error( ) );

$fields = mysql_num_fields ( $export );
$header = '';
for ( $i = 0; $i < $fields; $i++ )
{
   $header .= mysql_field_name( $export , $i ) . "\t";
}
$data = '';
while( $row = mysql_fetch_row( $export ) )
{
   $line = '';
   foreach( $row as $value )
   {                                            
       if ( ( !isset( $value ) ) || ( $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";                        
}

header("Content-type: application/octet-stream");
header("Content-Disposition: attachment; filename=nome_do_ficheiro.xls"); // xls, csv, xlsx, txt
header("Pragma: no-cache");
header("Expires: 0");
print "$header\n$data";
?>

 

basta colocar um link na pagina (ou botão) a chamar este script.

 

fui...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Amigo marcosfj1 onClick no HTML serve para eventos Javascript, chamadas AJAX dentre outros.

 

O correto seria você carregar um popup que gere o arquivo para download ou um ajax que crie o

arquivo em uma pasta, um link html ou algo neste sentido.

 

Pesquise no google sobre AJAX, Javascript, popups e HTML.

 

Estude antes de desenvolver ok? HTML é o conhecimento mínimo exigido para se desenvolver algo com PHP.

 

Abraços.

 

 

Concordo com o Periscuelo acima.

 

Cara você entendeu o codigo o que ele faz? a parte do header's ? Ele gera o html em xls e depois disponibiliza o arquivo para download, então não existe nada de evento, apenas um link para download normal...

 

Não precisa nem comentar isso certo ?

onclick="<?php echo 'tabela' header()... ?>"

 

Entao galera por nao ter conhecimento de AJAX e JavaScript eu tentei fazer dessa maneira, e apesar de tudo deu certo :)

Agora qdo clico na pagina já mostra a opcao de salvar, a unica questao é q alem de estar salvando os dados da consulta SQL ele ta mandando para o arquivo .XSL uma parte do menu a esquerda q tenho junto na pagina.

 

Mas de qualquer forma consegui fazer o q eu queria q era mandar os dados da consulta para o excel, só preciso ver isso do menu ir tbm e como resolver isso

 

Obrigado a todos que responderam

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você fizer da forma certa, não vai ter problema com o menu talvez :thumbsup:

 

 

Sim já to dando uma estudada em AJAX e JavaScript pra ver se consigo fazer algo com eles, o f*** é q nao tenho conhecimento nessas areas ai fica f***, mas vou q q arrumo aqui

 

valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu acho que você não precisa do ajax em si para montar a página... apenas insere um <a href='exportarexcel.php?id=$id'>Gerar excel</a>, e então na pagina exportarexcel.php você pega o id da consulta e gera o arquivo em .xls (caso você esteja exibindo esse resultados usando uma consulta do mysql)

 

:P

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas eu acho que você não precisa do ajax em si para montar a página... apenas insere um <a href='exportarexcel.php?id=$id'>Gerar excel</a>, e então na pagina exportarexcel.php você pega o id da consulta e gera o arquivo em .xls (caso você esteja exibindo esse resultados usando uma consulta do mysql)

 

:P

 

Hum vou tentar...na verdade estava a pesquisar outras coisas simplesmente pq você falaram aqui hehe...senao nem ia mexer com isso hehe

 

Vou ver como posso adaptar isso que você me passou e depois posto aqui

 

valeu

 

OU cara deu certo aqui dessa maneira mto obrigado!!

 

E o melhor nao precisei usar nem javascript nem ajax hehe....consegui enviar a consulta pelo link

 

Agora o negocio é fazer nas consultas sql mais complexas, estas q vao pegar mesmo

 

Mas pelo menos o q eu queria aprender q era mandar os dados para um planilha no excel ja foi resolvi

 

Valeu

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.