首頁 >後端開發 >php教程 >如何使用 PHP 將 MySQL 資料分離到 Excel 匯出中的單一儲存格?

如何使用 PHP 將 MySQL 資料分離到 Excel 匯出中的單一儲存格?

Barbara Streisand
Barbara Streisand原創
2024-10-18 06:25:03674瀏覽

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>

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>

以上是如何使用 PHP 將 MySQL 資料分離到 Excel 匯出中的單一儲存格?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn