Php 只需单击一下,即可下载多个excel文件

Php 只需单击一下,即可下载多个excel文件,php,sql,postgresql,Php,Sql,Postgresql,我有几个php文件,其中包含对postgresql数据库的不同查询。这些文件大约有十六个。根据文件中的查询,每个文件都返回一组不同的数据。查询完成后,您可以下载该文件并将其下载到excel文件中。 我的问题是如何在php中触发下载,这样我就可以只有一个链接,单击它,所有这16个文件都会立即下载。我不想在其上下载每个文件。或者更好的是,我可以有复选框,选择我想下载的文件。我希望我的问题足够清楚 例如,我有一个名为export_a.php的文件,其中包含以下代码 <?php require_o

我有几个php文件,其中包含对postgresql数据库的不同查询。这些文件大约有十六个。根据文件中的查询,每个文件都返回一组不同的数据。查询完成后,您可以下载该文件并将其下载到excel文件中。 我的问题是如何在php中触发下载,这样我就可以只有一个链接,单击它,所有这16个文件都会立即下载。我不想在其上下载每个文件。或者更好的是,我可以有复选框,选择我想下载的文件。我希望我的问题足够清楚

例如,我有一个名为export_a.php的文件,其中包含以下代码

<?php require_once('connections/pgconn.php');


function cleanData(&$str)
{
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}

// filename for download
$filename = "eastafrica_revenue_daily" . date('Ymd') . ".xls";

header("Content-Disposition: attachment; filename=\"$filename\"");
header("Content-Type: application/vnd.ms-excel");

$flag = false;
$result = pg_query("SELECT to_char (a.CALLDATE,'yyyymmdd') as transdate,
    sum(a.alltaxcost::integer) AS revenue,
     COUNT (DISTINCT a.IDENTIFIANT) AS distinct_callers,
a.zoneiddest as country_code,b.country
FROM cdr_data a,  COUNTRY_CODES b
WHERE  a.CALLSUBCLASS = '002'
     AND a.CALLCLASS = '008'
and a.zoneiddest::integer > 0
AND SUBSTR (a.CALLEDNUMBER, 1, 2) NOT IN
('77', '78', '75', '70', '71', '41', '31', '39', '76','79')
and  substr(a.zoneiddest,1,3) in ('254','255','211','257','250')
and trim(a.zoneiddest)  = trim(b.country_code)
GROUP BY to_char (a.CALLDATE,'yyyymmdd') ,a.zoneiddest,b.country
ORDER BY 1") or die('Query failed!');

while(false !== ($row = pg_fetch_assoc($result))) {
if(!$flag) {
  // display field/column names as first row
  echo implode("\t", array_keys($row)) . "\r\n";
  $flag = true;
}
array_walk($row, 'cleanData');
echo implode("\t", array_values($row)) . "\r\n";
}
exit;
?>

如果要下载Excel文件,为什么不下载一个包含16个工作表的Excel文件(每个数据集一个)


或者,将所有文件压缩到一起,然后下载压缩文件

您尝试过什么吗?你的问题很清楚,但过于宽泛。您似乎需要一个教程,而不是一个特定问题的答案。我已经读过关于phpexcel的文章。似乎我需要的东西太多了。基本上,如果我可以重新措辞的话,我需要一种方式,通过点击按钮或链接触发一个函数,这样包含查询的文件都可以一次下载。这不是一个教程,但为我指明了正确的方向,以在最短的时间内解决我的问题,但我了解到你必须一个接一个地运行每个查询,在服务器上创建excel,并将其下载到zip文件中。你的建议是,当进行每个查询时,它首先存储在服务器上,然后它们都被压缩,下载被触发。首先要注意的是,您在这里编写HTML,只需一个指向Excel文件导出的链接。。。。。export_eard.php中的代码是否创建了Excel文件(看起来应该是这样的),在这种情况下,您可能会向我们展示这一点,是的,我将如何实现这一点?如何聚合包含不同查询的所有不同文件,并且每个文件将查询导出到一个excel文件中?如果不知道您现在是如何执行查询的,几乎不可能说出如何聚合它们;你的问题很模糊,所以我能提供的只是建议,而不是为你编写答案。。。。但是单独运行每个查询,并单独写入excel工作表,或单独归档;然后保存到Excel或Zipping让我编辑我的问题,并添加一些代码片段以使其更清楚。这是您可以得到的关于问题的最佳答案,就像现在这样。尝试这些建议,并返回一些代码(如果您仍然有问题)。