Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Exportar registros em arquivo excel


Não há necessidade de baixar bibliotecas externas - tudo o que você precisa para isso já está embutido no PHP.

Passos:
  1. Faça uma consulta em php para obter as linhas que deseja gerar
    Você pode usar SELECT * FROM table WHERE id IN (1,2,...)
  2. Usar mysql_fetch_array() ou mysql_fetch_assoc() para obter as linhas uma de cada vez
  3. Usar fputcsv() para enviá-los para um arquivo que termina em csv - isso escapará adequadamente de seus dados

http://www.php.net/manual/en /function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv .php

Excel será capaz de ler o arquivo.

Substituir os padrões para fputcsv usar tabulações para delimitadores e o Excel terá um tempo ainda mais fácil de ler o arquivo. Se você usar vírgulas (o padrão), talvez seja necessário escolher vírgulas como delimitador na importação do Excel.

Aqui está um exemplo de trabalho supondo que você já tenha linhas configuradas:
$rows; // predefined
$filename = 'webdata_' . date('Ymd') . '.csv';

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/octet-stream"); 
// that indicates it is binary so the OS won't mess with the filename
// should work for all attachments, not just excel

$out = fopen("php://output", 'w');  // write directly to php output, not to a file
foreach($rows as $row)
{
  fputcsv($out, $row);
}
fclose($out);