Ir para conteúdo

Arquivado

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

Walter Aragão

Exportar tabela HTML para excel - PROBLEMA

Recommended Posts

Pessoal ,

tenho o código abaixo que consultei aqui nos tópicos do imaster porem não obtive resposta do meu problema.

O arquivo excel abre porém sem nenhum conteudo.. é urgente !

Espero ajuda de vcs..

 

 

página inicial.

 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
<script src="../script/jquery-1.6.4.min.js" type="text/javascript"></script>

<script language="javascript">

$(document).ready(function() {

$(".botaoExcel").click(function(event) {

$("#dados_a_enviar").val( $("<div>").append( $("#Exportar_para_Excel").eq(0).clone()).html());

$("#FormularioExportacao").submit();

});

});

</script>

</head>

<body>
<table id="Exportar_para_Excel">

   <tr>

       <td>Célula1</td>

       <td>Célula2</td>

       <td>Célula3</td>

       <td>Célula4</td>

       <td>Célula5</td>

   </tr>

   <tr>

       <td>Célula6</td>

       <td>Célula7</td>

       <td>Célula8</td>

       <td>Célula9</td>

       <td>Célula10</td>

   </tr>

</table>

<form action="arquivoExcel.php" method="post" target="_blank" id="FormularioExportacao">

   <!--<p>Exportar para Excel  <img src="../imagens/export_to_excel.gif" /></p>-->

   <input type="hidden" id="dados_a_enviar" name="dados_a_enviar" />
<input type="submit" value="EXPORTAR" name="submit" />
</form>

</body>
</html>

 

página arquivoExcel.php

 

<? ob_start(); ?>


<?php


header("Content-type: application/vnd.ms-excel; name=’excel’");

header("Content-Disposition: filename=arquivoExcel.xls");

header("Pragma: no-cache");

header("Expires: 0");



echo $_POST[ 'dados_a_enviar' ];

?>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Boa noite fernando,

eu uso um plugin jquery para ordernação paginação e busca em uma tabela , na listagem dessa tabela eu faço uma busca no banco com todos os clientes cadastrados. Porem estou tentando usar esse exemplo funcionar para assim passar para a minha necessidade.A exportação tem que ser assim que a pessoa visualizar a tabela e clicar no link possa exportar.

Sabe como posso fazer para esse exemplo funcionar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mas cadê a classe PHP que gera o arquivo XLS? Para ler e escrever arquivos do Excel é preciso usar tags XML específicas que são interpretadas pelo programa. Veja por exemplo esse projeto:

 

http://phpexcel.codeplex.com/

 

 

nesse arquivo do imasters mesmo.. não citam nada sobre xml , por isso que não criei nenhuma classe. Tem algum jeito de eu conseguir o que preciso seguindo esse tutorial :?

 

http://imasters.com.br/artigo/13543

Compartilhar este post


Link para o post
Compartilhar em outros sites

Isso artigo que você citou não ensina como criar um arquivo XLS ou XLSX, mas sim um arquivo HTML com extensão XLS. Arquivos HTML podem ser importados pelo Excel. Simplesmente colocar o MIME de um XLS não irá converter os formatos.

 

 

Você pode simplesmente renomear o arquivo para .html e importá-lo no Excel. Mas para gerar um arquivo do Excel genuíno você precisa usar uma classe especial para isso, como a que lhe indiquei.

Compartilhar este post


Link para o post
Compartilhar em outros sites

opa Walter

 

boa tarde =D

 

assim, to trabalhando num sistema aq de intranet da empresa ond nao posso mecher muita coisa, entao ta cheio de pog,

uma das funcionalidades inclusive é exportar pro excel uma listagem de relatorios (so nao sei pra q eles aq qrem no excel mas beleza)

 

uma alternativa que encontrei pra conseguir isso bem simples foi...

 

<?php
   header("Content-type: application/vnd.ms-excel");
   header("Content-type: application/force-download");
   header("Content-Disposition: attachment; filename=relatorio.xls");
   header("Pragma: no-cache");

   include("../manutencao/seguranca.php"); // Inclui o arquivo com o sistema de segurança
   //protegePagina(); // Chama a função que protege a página
   require_once '/../crud/config/conexao.class.php';
   require_once '/../crud/config/crud.class.php';

   $con = new conexao(); // instancia classe de conxao
   $con->connect(); // abre conexao com o banco


?>

<table>
   <?php
   $query = mysql_query("SELECT * FROM relatorio"); // query que busca todos os dados da tabela
   while($lista = mysql_fetch_array($query)){ // laço de repetiçao que vai trazer todos os resultados da consulta
   ?>
   <tr>

       <td> <?php echo $lista['relat_id']; ?></td>
       <td><?php echo $lista['relat_dt_cria']; ?></td>
       <td><?php echo $lista['relat_hr_chamado']; ?></td>
       <td><?php echo $lista['relat_hr_inicio']; ?></td>
       <td><?php echo $lista['relat_hr_final']; ?></td>
       <td><?php echo $lista['relat_hr_total']; ?></td>
       <td><?php echo $lista['relat_solic']; ?></td>
       <td><?php echo $lista['relat_turno']; ?></td>
       <td><?php echo $lista['relat_tec_nome']; ?></td>
       <td><?php echo $lista['relat_equip_nome']; ?></td>
       <td><?php echo $lista['relat_tipo_manut']; ?></td>
       <td><?php echo $lista['relat_desc_prob']; ?></td>
       <td><?php echo $lista['relat_causa']; ?></td>
       <td><?php echo $lista['relat_medidas']; ?></td>
       <td><?php echo $lista['relat_obs']; ?></td>

   </tr>
   <?php } ?>
</table>

 

você so vai precisar alterar as infos necessarias de acordo com sua conexao e o q exatamente você vai qrer trazer do bd.

 

ta bem 'cru' esse code, da pra melhorar muita coisa, porem como existe uma certa urgencia aq, nao me apeguei muito a formalidades =D

 

divirta-se

Compartilhar este post


Link para o post
Compartilhar em outros sites

Fala Walter, beleza?

 

Esse tutorial de exportar tabelas HTML para mostra a forma mais fácil de um sistema web gerar um xls.

 

O Excel entende tabelas HTML sem muitos problemas. Para testar isso você pode criar um arquivo TXT e escrever uma tabela HTML e depois renomear para .XLS

 

O ruim de usar essa forma de exportação é que você não pode usar funções, formatações e algumas outras funcionalidades que se tem em um arquivo XLS ou XLSX nativo, e além disso, sempre que o usuário abrir o arquivo ele receberá uma mensagem falando sobre o formato do arquivo não estar correto.

 

A melhor lib para gerar XLS ou XLSX pelo PHP que conheco é a PHPExcel, enviada pelo mangakah. Ela é bem simples de usar, tem bastante exemplo e gera o arquivo nativo do Excel.

 

Qualquer dúvida responde aí.

 

Abraço.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Ola Amigos Como faço para criar um botão exportar para usar esse codigo? Denys Fonseca

<?php
    header("Content-type: application/vnd.ms-excel");
    header("Content-type: application/force-download");
    header("Content-Disposition: attachment; filename=relatorio.xls");
    header("Pragma: no-cache");

    include("../manutencao/seguranca.php"); // Inclui o arquivo com o sistema de segurança
    //protegePagina(); // Chama a função que protege a página
    require_once '/../crud/config/conexao.class.php';
    require_once '/../crud/config/crud.class.php';

    $con = new conexao(); // instancia classe de conxao
    $con->connect(); // abre conexao com o banco


?>

<table>
    <?php
    $query = mysql_query("SELECT * FROM relatorio"); // query que busca todos os dados da tabela
    while($lista = mysql_fetch_array($query)){ // laço de repetiçao que vai trazer todos os resultados da consulta
    ?>
    <tr>
        
        <td> <?php echo $lista['relat_id']; ?></td>
        <td><?php echo $lista['relat_dt_cria']; ?></td>
        <td><?php echo $lista['relat_hr_chamado']; ?></td>
        <td><?php echo $lista['relat_hr_inicio']; ?></td>
        <td><?php echo $lista['relat_hr_final']; ?></td>
        <td><?php echo $lista['relat_hr_total']; ?></td>
        <td><?php echo $lista['relat_solic']; ?></td>
        <td><?php echo $lista['relat_turno']; ?></td>
        <td><?php echo $lista['relat_tec_nome']; ?></td>
        <td><?php echo $lista['relat_equip_nome']; ?></td>
        <td><?php echo $lista['relat_tipo_manut']; ?></td>
        <td><?php echo $lista['relat_desc_prob']; ?></td>
        <td><?php echo $lista['relat_causa']; ?></td>
        <td><?php echo $lista['relat_medidas']; ?></td>
        <td><?php echo $lista['relat_obs']; ?></td>
        
    </tr>
    <?php } ?>
</table>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mactos, se não tiver nenhum filtro como já não existe em seu código e se o mesmo não tiver problemas em recarregar a página, basta criar um link simples mesmo direcionando para a página que tem esse script. algo semelhante a isso.

 

<a href="exportar_excel.php" target="_blank">Exportar excel</a>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pessoal ,

tenho o código abaixo que consultei aqui nos tópicos do imaster porem não obtive resposta do meu problema.

O arquivo excel abre porém sem nenhum conteudo.. é urgente !

Espero ajuda de vcs..

 

 

página inicial.

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>Untitled Document</title><script src="../script/jquery-1.6.4.min.js" type="text/javascript"></script><script language="javascript">$(document).ready(function() { // alteração aqui$("#dados_a_enviar").val( $("<div>").append( $("#Exportar_para_Excel").eq(0).clone()).html());$(".botaoExcel").click(function(event) {$("#FormularioExportacao").submit();});});</script></head><body><table id="Exportar_para_Excel">    <tr>        <td>Célula1</td>        <td>Célula2</td>        <td>Célula3</td>        <td>Célula4</td>        <td>Célula5</td>    </tr>    <tr>        <td>Célula6</td>        <td>Célula7</td>        <td>Célula8</td>        <td>Célula9</td>        <td>Célula10</td>    </tr></table><form action="arquivoExcel.php" method="post" target="_blank" id="FormularioExportacao">    <!--<p>Exportar para Excel  <img src="../imagens/export_to_excel.gif" /></p>-->    <input type="hidden" id="dados_a_enviar" name="dados_a_enviar" /><input type="submit" value="EXPORTAR" name="submit" /></form></body></html>

página arquivoExcel.php

 

<? ob_start(); ?><?phpheader("Content-type: application/vnd.ms-excel; name=excel");header("Content-Disposition: filename=arquivoExcel.xls");header("Pragma: no-cache");header("Expires: 0");echo $_POST[ 'dados_a_enviar' ];?>

Post antigo, mas quem tiver como o mesmo problema s fazer isso.

 

 

.

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.