Ir ao conteúdo
  • Cadastre-se

Gerar resultado excel com limite de exibição


Posts recomendados

Bom dia

 

Estou enfrentando o problema a seguir

 

Busquei o seguinte código para gerar uma tabela do excel buscando dados do Banco

<?php // Inclui a conexão include_once('conn2.php'); // Nome do Arquivo do Excel que será gerado $arquivo = 'Lista_Ramais.xls'; // Criamos uma tabela HTML com o formato da planilha para excel $tabela = '<table border="1">'; $tabela .= '<tr>'; $tabela .= '<td colspan="2">Filial</tr>'; $tabela .= '</tr>'; $tabela .= '<tr>'; $tabela .= '<td><b>Nome</b></td>'; $tabela .= '<td><b>Ramal</b></td>'; $tabela .= '<td><b>Setor</b></td>'; $tabela .= '</tr>'; // Puxando dados do Banco de dados $resultado = mysql_query('SELECT * FROM banco'); while($dados = mysql_fetch_array($resultado)) {  $tabela .= '<tr>';  $tabela .= '<td>'.$dados['nome'].'</td>';  $tabela .= '<td>'.$dados['ramal'].'</td>';      $tabela .= '<td>'.$dados['setor'].'</td>';  $tabela .= '</tr>'; } $tabela .= '</table>'; // Força o Download do Arquivo Gerado header ('Cache-Control: no-cache, must-revalidate'); header ('Pragma: no-cache'); header('Content-Type: application/x-msexcel'); header ("Content-Disposition: attachment; filename=\"{$arquivo}\""); echo $tabela;?>

Até ai beleza Gera tudo certinho e tal

agora que começa o problema, esta planilha busca todos os dados do banco como eu quero mas gera o resultado a baixo, eu gostaria que ao chegar no limite de exibição de 28 linhas ele exiba ao lado

 

Exemplo

 

titulo 1 titulo 2  titulo 1  titulo 2

a          1           d           4

b          2           e           5

c          3           f            6

 

 

 

e assim vai, pois preciso imprimir este resultado em apenas uma folha

 

Alguém pode me ajudar?

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

Taí, gostei do desafio de lógica.. é bem simples mas é difícil fazer "da melhor forma possível".. veja o algoritmo que fiz abaixo e tente entender/adaptar para seu problema..

<table style="border-collapse: separate; border: 1px solid #929292;"><?php$count        = 100; // Nossos dados.. no seu caso, vai ser o count da sua array de dados$quebra     = 28; // Queremos quebrar os dados de quanto em quanto?$columns    = ceil($count / $quebra); // Numero de vezes em que precisaremos repetir o cabeçalho// Como nesse caso eu não uso banco de dados, eu crio uma array fake utilizando o $count acima para simular meus dados// No seu caso vai ser simplesmente sua array de dadosfor($x = 0; $x<$count; $x++){    $dados[$x] = $x;}/** * No meu exemplo teremos uma array simples de 0 a 99. * $dados[0] = 0; * $dados[1] = 1; * ... * $dados[99] = 99; * * Quando formos buscar os dados, querendo para a primeira linha buscar os dados de indices * coluna1  coluna2       coluna1  coluna2 * $dados[0] $dados[0]    $dados[28]  $dados[28] * $dados[1] $dados[1]    $dados[29]  $dados[29] * ... * $dados[27] $dados[27]  $dados[55]  $dados[55] * 27 é o ultimo e o proximo (28) deve estar na proxima coluna */// Cria os cabeçalhos..?><tr><?php for($y = 0; $y<$columns; $y++): ?>    <th>coluna 1</th>    <th>coluna 2</th><?php endfor; ?></tr><?php// Resgata os dadosfor($x = 0; $x<$quebra; $x++){    echo "<tr>";    for($y = 0; $y<$columns; $y++){        $indexDado = $x + ($y * $quebra);        if(array_key_exists($dados[$indexDado], $dados)){            echo "<td>Linha {$dados[$indexDado]} valor 1</td>";            echo "<td>Linha {$dados[$indexDado]} valor 2</td>";        } else {            echo "<td></td>";            echo "<td></td>";        }    }    echo "</tr>";}?></table>

Não gosto muito de misturar PHP e HTML, mas nesse caso a visualização ficou melhor assim..

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...