如何允许用户打印和下载MySQL查询结果

时间:2009-11-07 14:11:20

标签: php mysql user-interface printing

我开发了一个应用程序,用户可以使用它来存储他们喜欢的书籍,他们读过的书籍,他们想要阅读的书籍等等的列表,而且它们一切正常,但它突然让我震惊用户可能希望打印其列表或下载其列表以使用其他格式(如CSV文件)导入电子表格。

显然,用户可以打印整个网页,但我想让他们只打印他们的列表,或者将其下载为CSV文件,以便在电子表格中使用。

除了将查询结果传递给HTML页面并打印HTML页面之外,最简单的方法是什么?

3 个答案:

答案 0 :(得分:4)

对于打印,大多数用户都很欣赏“已清理”的html页面的简单性,这些页面仅显示/主要是他们感兴趣的数据。通过这种方式,他们可以留在网络浏览器中获取快速印刷他们需要的东西。如Tom所示,这通常可以通过CSS实现,从而可以隐藏打印输出中的不需要的元素,并且可以以略微不同的样式显示其他元素(例如,假设B / W打印机等引入更多的对比度)。 )。

要导出数据,您需要引入一个链接/按钮,用户可以点击该按钮来表示他们希望将数据导出[以特定格式]。您的应用程序可以在适当的MIME类型下提供此服务(即,您将在流式传输CSV文本之前修改http标头的内容类型(类似于“应用程序/文本”))

答案 1 :(得分:2)

要输出csv,您只需将查询的输出格式化为csv文件,然后为输出设置content-disposition标头。此代码段取自this website

 <?
 $csv_output = "column 1,column2"; 
 $csv_output .= "\n"; 
 $result = mysql_query("select * from table"); 

 while($row = mysql_fetch_array($result)) { 
   $csv_output .= "$row[col1],$row[col2]\n";
   } 

 header("Content-type: application/vnd.ms-excel");
 header("Content-disposition: csv" . date("Y-m-d") . ".xls");
 print $csv_output;
 exit;  
?>

答案 2 :(得分:1)

  

显然,用户可以打印整个网页,但我想让他们只打印他们的列表,或者将其下载为CSV文件,以便在电子表格中使用。

为什么不提供print stylesheet这样简单的事情,例如隐藏导航和菜单以及增加字体大小。