Comment exporter une table MySQL au format Excel en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2020-11-11 12:33:08
Thèmes : webmaster - mysql - php - excel
Question

Comment puis-je exporter une table MySQL au format Excel en PHP, via un bouton ou un lien hypertexte HTML ?

Réponse

Pour exporter une table MySQL au format Excel, CSV par exemple, vous devez effectuer votre requête MySQL, puis charger le résultat dans une page PHP dont le header est du type Content-type: text/x-csv;

Il vous suffit de créer un lien hypertexte vers un fichier PHP :

<a href="export.php" target="_blank">Exporter au format CSV</a>

Voici le code source du fichier PHP :

<?php 
error_reporting(E_ALL);
ini_set("display_errors", 1);
$csv = '';
$csv_nom = 'fichier.csv';
$mysqli = mysqli_connect("localhost", "utilisateur", "mot de passe", "nom de la base");
$result = mysqli_query($mysqli, "SELECT * FROM TABLE");
$champ = mysqli_num_fields($result);
for($i = 0; $i < $champ; $i++) 
{
  $csv.= mysqli_fetch_field_direct($result, $i)->name.';';
}
$csv.= '
';
while($row = mysqli_fetch_array($result)) 
{
  for($i = 0; $i < $champ; $i++) 
  {
    $csv.= '"'.$row[mysqli_fetch_field_direct($result, $i)->name].'";';
  }
  $csv.= '
  ';
}
header("Content-type: text/x-csv; charset=utf-8");
header("Content-Disposition: attachment; filename=".$csv_nom."");
echo $csv;
mysqli_close($mysqli);
?>