Exportar Registros em XLS ( Excel ) - Mais de 20 mil registros - MySQL
Olá Pessoal, tudo bem ?
Fiz um código para exportar Excel, porém não estou conseguindo, até 15 mil registros funciona perfeitamente a função abaixo, após isso, o servidor trava e não consegue, pois precisa de uma alta memória virtual.
O pior que meu cliente, aceita somente relatório em XLS, como devo fazer ? Alguma Luz ?
<?php
session_start();
// Nome do Arquivo do Excel que será gerado
$arquivo_exportacao = 'exportacao_avisos.xls';
ini_set('default_charset', 'UTF-8');
header("Content-type: text/html; charset=iso-8859-1");
// 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_exportacao}\"");
extract($_POST);
$id = $_GET['id'];
$contagem_aplicacao = PDO_contagemRegistros("avisos_usuario_assoc", array("id_aviso" => $_GET['id']));
if ($contagem_aplicacao >= 1) {
// Criamos uma tabela HTML com o formato da planilha para excel
$tabela_exportacao = '<table border="1">';
$tabela_exportacao .= '<tr>';
$tabela_exportacao .= '<td><b>Título Documento</b></td>';
$tabela_exportacao .= '<td><b>Nome</b></td>';
$tabela_exportacao .= '<td><b>Transportadora</b></td>';
$tabela_exportacao .= '<td><b>Data Leitura</b></td>';
$tabela_exportacao .= '<td><b>Horário Leitura</b></td>';
$tabela_exportacao .= '</tr>';
$listar_codigos = PDO_listarTabela("avisos_usuario_assoc", " WHERE id_aviso = '$id' ORDER BY id_transportadora ASC");
$d = new ArrayIterator($listar_codigos);
while ($d->valid()):
$listar_codigos = $d->current();
$selecionar_usuario = PDO_selecionarRegistro("usuario", array("id_usuario" => $listar_codigos['id_usuario']));
$selecionar_transportadora = PDO_selecionarRegistro("transportadora", array("id_transportadora" => $listar_codigos['id_transportadora']));
$selecionar_documento = PDO_selecionarRegistro("avisos", array("id_aviso" => $id));
$tabela_exportacao .= '<tr>';
$tabela_exportacao .= '<td>';
$tabela_exportacao .= $selecionar_documento['titulo'];
$tabela_exportacao .= '</td>';
$tabela_exportacao .= '<td>';
$tabela_exportacao .= $selecionar_usuario['nome_completo'];
$tabela_exportacao .= '</td>';
$tabela_exportacao .= '<td>';
$tabela_exportacao .= $selecionar_transportadora['nome_fantasia'];
$tabela_exportacao .= '</td>';
$tabela_exportacao .= '<td>';
$tabela_exportacao .= date('d/m/Y', strtotime($selecionar_documento['data_hora_publicacao']));
$tabela_exportacao .= '</td>';
$tabela_exportacao .= '<td>';
$tabela_exportacao .= date('H:i:s', strtotime($selecionar_documento['data_hora_publicacao']));
$tabela_exportacao .= '</td>';;
$tabela_exportacao .= '</tr>';
$d->next();
endwhile;
$tabela_exportacao .= '</table>';
echo $tabela_exportacao;
}
?>Discussão (3)
Carregando comentários...