我怎样才能下载到Excel?

我想为我的coldfusion网站的不同部分提供几个不同的数据集,提供“下载到excel”function。 我正在使用ColdFusion,并喜欢使用免费的自定义标签/库,可以帮助我完成这一切,而不是从头开始自己编码。 我已经指向cflib.org,但不知道如何开始。 任何人有任何想法,意见或资源下载的ColdFusion网站数据优秀?

过去我曾经用过一个表格统计数据负载的方法来利用Excel可以读取HTML的事实。

在我打算提供Excel链接的页面上,我将核心表格作为HTML写入文件,并在渲染页面中包含指向该文件的链接。 然后,您可以使用.xls扩展名来提供此页面,使用meta标题,甚至可以在CFCONTENT中使用中间页面,让浏览器启动Excel以显示内容。

这种方法可以扩展为每页任意数量的表格。 您将不得不编写一个标签来包含表格,然后该表格将负责编写该文件,并为其中包含的所有HTML内容提供下载链接。

对不起,缺less示例代码。 如果我对这个过程的描述让你感到头疼,那么我会为你提供一些例子。

你也可以使用一个html表格,如下所示:

 <cfquery name="data" datasource="whatever"> ... </cfquery> <cfheader name="Content-Disposition" value="inline; filename=fileName.xls"> <cfcontent type="application/x-msexcel" reset="true"> <table border="0" cellspacing="0" cellpadding="0"> <thead> <tr> <td>Col1</td> <td>Col2</td> </tr> </thead> <tbody> <cfoutput query="data"> <tr> <td>#data.Col1#</td> <td>#data.Col2#</td> </tr> </cfoutput> </tbody> </table> 

心连心,

拉里

基于@Ciaran Archer的回答,我通常使用CSV来实现这个function,如果安装在客户端PC上,Excel将从网上打开。 假设您正在使用的数据是从数据库中提取的,请使用Ben Nadel网站上的QueryToCSV ():

 <cfquery name="data" datasource=""> ... </cfquery> <cfinclude template="fun_queryToCSV.cfm"> <cfheader name="Content-Disposition" value="filename=my-file-name.xls"> <cfcontent type="test/csv" reset="true"> <cfoutput>#querytoCSV(data)#</cfoutput> 

cfcontent上的“reset”会清除响应缓冲区,这样内部唯一的内容就是后面的内容。 或者,如果您已将数据作为文件,则cfcontent具有“文件”属性,可直接提供其内容。

最后,我们使用了cflib.org的Query2Excel函数,并稍微修改它以适应我们的特定需求。

对于那些使用ColdFusion 9+并能够使用cfspreadsheet的人,可以利用SpreadsheetReadBinary()使电子表格可下载,而无需首先将电子表格写入文件。