Não há necessidade de baixar bibliotecas externas - tudo o que você precisa para isso já está embutido no PHP.
Passos:
- Faça uma consulta em php para obter as linhas que deseja gerar
Você pode usarSELECT * FROM table WHERE id IN (1,2,...)
- Usar
mysql_fetch_array()
oumysql_fetch_assoc()
para obter as linhas uma de cada vez - 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);