首页  >  文章  >  后端开发  >  如何使用 PHP 将 MySQL 数据分离到 Excel 导出中的单个单元格中?

如何使用 PHP 将 MySQL 数据分离到 Excel 导出中的单个单元格中?

Barbara Streisand
Barbara Streisand原创
2024-10-18 06:25:03595浏览

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

在 PHP 中将 MySQL 数据导出到 Excel

问题:

将 MySQL 数据导出到时Excel 文件中,文本会合并到单个单元格中,而不是分成单独的单元格。

解决方案:

将 MySQL 数据导出到 Excel 并包含每行值在单独的单元格中,修改 PHP 代码如下:

<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>

说明:

  • 现在迭代每个行值并将其封装在双引号内以符合 Excel 的格式。
  • 换行符已标准化,以确保 Excel 文件中的一致性。

更新的代码:

<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