Mysql
 sql >> Base de données >  >> RDS >> Mysql

Exporter des enregistrements dans un fichier Excel

Il n'est pas nécessaire de télécharger des bibliothèques externes - tout ce dont vous avez besoin pour cela est déjà intégré à PHP.

Étapes :

  1. Effectuez une requête en php pour obtenir les lignes que vous souhaitez afficher
    Vous pouvez utiliser SELECT * FROM table WHERE id IN (1,2,...)
  2. Utilisez mysql_fetch_array() ou mysql_fetch_assoc() pour obtenir les lignes une par une
  3. Utilisez fputcsv() pour les sortir dans un fichier se terminant par csv - cela échappera correctement vos données

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

Excel pourra lire le fichier.

Remplacer les valeurs par défaut pour fputcsv utiliser des tabulations pour les délimiteurs et Excel aura encore plus de facilité à lire le fichier. Si vous utilisez des virgules (valeur par défaut), vous devrez peut-être choisir des virgules comme délimiteur lors de l'importation Excel.

Voici un exemple de travail en supposant que vous avez déjà configuré des lignes :

$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);