使表格数据可作为CSV文件下载



我有一个网站,提供数据在标准的HTML表格形式,并跨7列显示。在后台,数据存储在MySQL中,并通过PHP在网页上显示。

网站访问者一直要求以CSV文件的形式提供可下载的数据,我可以提供该功能。

提供有限数量的列(比如7列中的3列)并通过一键下载到CSV文件的最佳方法是什么?

注意:这个问题是不是关于网站访问者抓取数据使用python或其他脚本,但它是关于一个网站管理员愿意提供以CSV文件下载数据的选项。

为"表格数据"搜索并检查了此线程XML或CSV,但它没有精确的答案,因此存在问题。

创建一个新的PHP文件(页面),将内容呈现为CSV而不是HTML。然后操作响应头,使浏览器清楚地知道这是一个要下载的文件。.php文件应该是这样的:

<?php
header('Content-Description: File Transfer');
header('Content-Type: text/csv');
header('Content-Disposition: attachment; filename="file.csv"');
// ... QUERY FOR DATA
$outstream = fopen("php://output", 'w');
function __outputCSV(&$vals, $key, $filehandler) {
fputcsv($filehandler, $vals, ',', '"');
}
// CSV header
__outputCSV(['header1', 'header2', ...]);
// CSV body
array_walk($data, '__outputCSV', $outstream);
fclose($outstream);
?>