sql >> Base de Datos >  >> RDS >> Mysql

Exportar registros en archivo de Excel

No es necesario descargar bibliotecas externas:todo lo que necesita para esto ya está integrado en PHP.

Pasos:

  1. Haga una consulta en php para obtener las filas que desea generar
    Puede usar SELECT * FROM table WHERE id IN (1,2,...)
  2. Utilice mysql_fetch_array() o mysql_fetch_assoc() para obtener las filas una a la vez
  3. 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);