Exportando dados para Excel com PHP
Olá pessoal, quem nunca teve a necessidade de exportar dados de seu sistema online? E sem ter que acessar o seu painel do BD?
Além de proporcionar mais eficiência no seu trabalho é um ótimo recurso a ser implementado no painel administrativo de seu cliente.
Exportar do MySQL para o Excel nada mais é do que construir uma tabela HTML e dentro dela carregar os dados com PHP e depois forçar o download. Para isto teremos 2 arquivos: um arquivo PHP separado para exportar a tabela chamado exporta.php
e outro arquivo HTML para o usuário informar os parâmetros chamado consulta.html
.
Em nosso exemplo faremos uma consulta na tabela ‘vendas’ com uma condição de código do produto informada pelo usuário e o usuário também poderá informar o nome do arquivo a ser exportado.
Vamos ao código:
consulta.html
<form action="exporta.php" method="post">
<label>Codigo do produto: </label>
<input type="number" name="codigo">
<label>Nome do arquivo exportado: </label>
<input type="text" name="nome_arquivo">
<input type="submit" value="Exportar">
</form>
Neste arquivo usaremos este formulário simples para receber o código do produto e nome do arquivo que será gerado.
exporta.php
<?php
$nome_arquivo = $_POST['nome_arquivo'];
$codigo = $_POST['codigo'];
header("Content-type: application/vnd.ms-excel");
header("Content-type: application/force-download");
header("Content-Disposition: attachment; filename=$nome_arquivo.xls");
header("Pragma: no-cache");
?>
<table>
<tr>
<td>Cliente</td>
<td>Data da Comprar</td>
<td>Valor</td>
<td>Produto</td>
</tr>
<?php
mysql_connect('endereço','usuario','senha');
mysql_selectdb('bd');
$consulta_codigo = mysql_query("select cliente, data, valor, produto from vendas where codigo_produto=".$codigo."'");
while($venda = mysql_fetch_array($consulta_codigo)){
echo "<tr><td>".$venda['cliente']."</td><td>".$venda['data']."</td><td>".$venda['valor']."</td><td>".$venda['produto']."</td></tr>";
}
?>
</table>
Neste outro arquivo recebemos na linha 2 e 3 os dados enviados pelo formulário. Na linha 4 informamos que a aplicação será o Excel, na linha 5 forçamos o download do arquivo. Na linha 6 informamos como o arquivo deve ser salvado, neste caso usamos o filename
para especificar o nome do arquivo, que será o valor armazenado na variável ‘nome_arquivo’ e no formato xls. E na linha 7 dizemos ao navegador para não fazer cache.
Iniciamos uma tabela no HTML e criamos um cabeçalho para ela. Na linha 17 conectamos ao MySQL e na linha 18 selecionamos o BD. Depois na linha 19 efetuamos uma consulta ao BD com a condição do código do produto. Criamos um ‘while
‘ na linha 20, para que enquanto existir resultados da consulta MySQL, ele exiba os dados no formato de tabela HTML conforme a linha 21. Quando o while
acabar de ser executado, o navegador inicia o download do arquivo que poderá ser aberto no Excel.
Por hoje é isso pessoal.