No es necesario descargar bibliotecas externas:todo lo que necesita para esto ya está integrado en PHP.
Pasos:
- Haga una consulta en php para obtener las filas que desea generar
Puede usarSELECT * FROM table WHERE id IN (1,2,...)
- Utilice
mysql_fetch_array()
omysql_fetch_assoc()
para obtener las filas una a la vez - Utilice
fputcsv()
para enviarlos a un archivo que termine en csv; esto escapará correctamente de sus datos
http://www.php.net/manual/en /function.mysql-fetch-array.php
http://php.net/manual/en/function.fputcsv .php
Excel podrá leer el archivo.
Anular los valores predeterminados para fputcsv
usar tabuladores para delimitadores y Excel tendrá aún más facilidad para leer el archivo. Si usa comas (el valor predeterminado), es posible que deba elegir comas como delimitador en la importación de Excel.
Aquí hay un ejemplo de trabajo suponiendo que ya tiene filas 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);