Criando arquivo CSV para download com php

Olá,

para criar o arquivo siga os seguintes passos:

1 – Crie as headers:

header('Content-Type: text/csv; charset=utf-8');
header('Content-Disposition: attachment; filename=data.csv');

2 – Crie e informe a saída:

$saida = fopen('php://output', 'w');

3 – Colocando as colunas:

fputcsv($saida, array('Coluna 1', 'Coluna 2', 'Coluna 3'));

4 – Obtendo os dados do Banco de dados:

mysql_connect('localhost', 'username', 'password');
mysql_select_db('database');
$linhas = mysql_query('SELECT campo1,campo2,campo3 FROM table');

5 – Inserindo o conteúdo no arquivo:

while ($linha = mysql_fetch_assoc($linhas)) fputcsv($output, $linha);
Richardson Westphal

Formado em Sistemas de Informação pela FAESA em Vitória - ES. Falo Inglês fluente e estou aprendendo Alemão. Iniciei a programação na faculdade e apaixonado pelo que faço, continuo meu trabalho como freelancer e home-office.

  • Lucas de Oliveira

    Opa amigo… Obrigado pela dica.
    Mas só uma correção, ali na parte 5, o correto é:

    while ($linha = mysql_fetch_assoc($linhas)) fputcsv($saida $linha);

    Porque senão, os dados do banco não saem no arquivo porque a variável utilizada na criação do arquivo é $saida e não $output.

    • Richardson Westphal

      Lucas, obrigado pela correção 🙂

  • Helio da Costa

    Se interessar, após gerar o CSV você pode fazer a conversão para XLS também, veja em https://www.blogson.com.br/como-gerar-um-arquivo-do-excel-com-php/ abraços!!!