【发布时间】:2020-10-21 21:21:17
【问题描述】:
我必须将 mysql 查询的结果提取到“用户友好”的 excel(.xls 或 .xlsx)表中。 我不想为 php 使用导入或包。
这是我目前得到的:
<?php
function query_to_csv($database, $query, $filename, $attachment = false, $headers = true) {
if ($attachment) {
// send response headers to the browser
header('Content-Type: text/csv');
header('Content-Disposition: attachment;filename=' . $filename);
$fp = fopen('php://output', 'w');
} else {
$fp = fopen($filename, 'w');
}
$result = mysqli_query($database, $query) or die(mysqli_error($database));
foreach ($result as $fields) {
fputcsv($fp, $fields);
}
fclose($fp);
}
这是 Result
如何将数组分散在不同的单元格中?
【问题讨论】:
-
该数据看起来可能没问题。可能只是您将其导入 Excel 的方式是错误的。尝试在文本编辑器中查看数据,以便查看原始 CSV 数据。我希望它看起来不错。
-
@ADyson 我同意,我认为他使用不同的分隔符在 excel 中打开 csv 文件。尝试选择
comma作为分隔符。 -
当然,这段代码不会生成真正的 XLS 或 XLSX 文件,它只会是 CSV 文本文件。如果您想创建一个真正的 Excel 文件,那么您将需要使用一个库(当然,除非您想自己实现 openXML 标准,但这将是相当多的工作)。你反对使用某种库或包,究竟是什么?我认为周围有一些免费的可以做你想做的工作。
-
@ADyson 我知道数据没问题。我只是想知道如何将逗号分隔值 (CSV) 提取到 Excel 表中。每个值应该有一个不同的单元格。
-
@ADyson 是的......你知道最大的威胁就在屏幕后面。 :) 无论如何,我现在使用 PHP Excel 得到它并设置了分隔符。你帮了很多忙,感谢 ADyson!
标签: php mysql excel csv export-to-csv