Maison >base de données >tutoriel mysql >Comment puis-je exporter des données MySQL vers Excel en utilisant PHP et assurer une bonne distribution des cellules ?

Comment puis-je exporter des données MySQL vers Excel en utilisant PHP et assurer une bonne distribution des cellules ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-25 01:59:13361parcourir

How can I export MySQL data to Excel using PHP and ensure proper cell distribution?

Exportation de données MySQL vers Excel en PHP

Lors de l'exportation de données MySQL vers Excel, il est crucial de s'assurer que les données sont correctement réparties entre les individus. cellules. Voici une explication détaillée pour résoudre ce problème et améliorer la fonctionnalité d'exportation :

Code PHP :

// PHP code to connect to MySQL, retrieve data, and format it for Excel export
// Connect to MySQL
$conn = mysql_connect($db_host, $db_user, $db_pass);
mysql_select_db($db_name);
// Execute query and store results
$result = mysql_query($sql);
$header = '';
// Iterate over result fields to get column names
for ($i = 0; $i < mysql_num_fields($result); $i++) {
    $header .= mysql_field_name($result, $i) . "\t";
}
$data = '';
// Iterate over result rows to get data
while ($row = mysql_fetch_row($result)) {
    $line = '';
    // Iterate over row data to get individual cell values
    foreach ($row as $value) {
        if (!isset($value) || $value == "") {
            $value = "\t";
        } else {
            $value = str_replace('"', '""', $value);
            $value = '"' . $value . '"' . "\t";
        }
        $line .= $value;
    }
    // Trim and append line to data
    $data .= trim($line) . "\n";
}
$data = str_replace("\r", "", $data);
// Export header and data
header("Content-type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=exportfile.xls");
header("Pragma: no-cache");
header("Expires: 0");
echo $header . "\n" . $data;
// Close MySQL connection
mysql_close($conn);

Explication :

  • La requête est exécutée et les résultats sont stockés dans la variable $result.
  • L'en-tête est générée en itérant sur les champs de résultat et en stockant les noms de colonnes séparés par des tabulations.
  • Les données sont générées en itérant sur les lignes et les cellules de résultat, en veillant à ce que chaque valeur de cellule soit entourée de guillemets doubles et séparée par des tabulations. .
  • Les espaces de début et de fin sont supprimés des données pour garantir un formatage correct.
  • L'en-tête et les données sont renvoyés en écho pour être téléchargés sous forme de fichier. Fichier Excel.
  • La connexion MySQL est fermée une fois l'export terminé.

En suivant ces modifications de votre code PHP, chaque valeur de ligne sera désormais placée dans une cellule Excel distincte , ce qui entraîne une exportation correctement formatée depuis votre base de données MySQL.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn