Maison > développement back-end > tutoriel php > Comment séparer les données MySQL en cellules individuelles dans les exportations Excel avec PHP ?

Comment séparer les données MySQL en cellules individuelles dans les exportations Excel avec PHP ?

Barbara Streisand
Libérer: 2024-10-18 06:25:03
original
725 Les gens l'ont consulté

How to Separate MySQL Data into Individual Cells in Excel Exports with PHP?

Exporting MySQL Data to Excel in PHP

Problem:

When exporting MySQL data to an Excel file, the text is combined into a single cell instead of being separated into individual cells.

Solution:

To export MySQL data to Excel with each row value in a separate cell, modify your PHP code as follows:

<code class="php">// ...
while (($row = mysql_fetch_row($result)) != FALSE) {
    foreach ($row as $value) {
        if (is_null($value)) {
            $line .= 'NULL' . "\t";
        } else {
            $value = str_replace('"', '""', $value);
            $value = '"' . $value . '"' . "\t";
            $line .= $value;
        }
    }
    $line = trim($line) . "\n";
    $line = preg_replace('/\r\n|\r|\n/', "\n", $line);  // Normalize newlines

    $data .= $line;
}
// ...</code>
Copier après la connexion

Explanation:

  • Each row value is now iterated over and encapsulated within double quotes to comply with Excel's format.
  • Newlines are normalized to ensure consistency in the Excel file.

Updated Code:

<code class="php">$queryexport = ("
SELECT username,password,fullname FROM ecustomer_users
WHERE fk_customer='" . $fk_customer . "'
");

$result = mysql_query($queryexport);
$header = '';

for ($i = 0; $i < $count; $i++) {
    $header .= mysql_field_name($result, $i) . "\t";
}

while (($row = mysql_fetch_row($result)) != FALSE) {
    $line = '';
    foreach ($row as $value) {
        if (is_null($value)) {
            $line .= 'NULL' . "\t";
        } else {
            $value = str_replace('"', '""', $value);
            $value = '"' . $value . '"' . "\t";
            $line .= $value;
        }
    }
    $line = trim($line) . "\n";
    $line = preg_replace('/\r\n|\r|\n/', "\n", $line);  // Normalize newlines

    $data .= $line;
}

header("Content-type: application/vnd.ms-excel; name='excel'");
header("Content-Disposition: attachment; filename=exportfile.xls");
header("Pragma: no-cache");
header("Expires: 0");

// output data
echo $header . "\n" . $data;

mysql_close($conn);</code>
Copier après la connexion

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 de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal