我该如何下载到Excel?

时间:2010-12-22 09:55:14

标签: excel resources coldfusion download

我想为我的coldfusion网站的不同部分提供的几种不同数据集提供“下载到excel”功能。我正在使用coldfusion,并希望使用免费提供的自定义标签/库,可以帮助我实现这一目标,而不是从头开始编码。我被指向cflib.org,但我不确定如何开始。任何人都有关于将coldfusion网站数据下载到excel的任何想法,意见或资源?

6 个答案:

答案 0 :(得分:5)

我过去使用的表格统计数据加载内网的方法是利用Excel可以读取HTML的事实。

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

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

很抱歉缺少示例代码。如果我对这个过程的描述让你摸不着头脑,那么我会为你提供一些例子。

答案 1 :(得分:4)

您也可以使用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>

HTH,

拉​​里

答案 2 :(得分:2)

答案 3 :(得分:1)

基于@Ciaran Archer的回答,我通常使用CSV来完成此操作,如果安装在客户端的PC上,Excel将从Web打开。假设您正在使用的数据来自数据库,请使用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具有“文件”属性,该属性将直接提供其内容。

答案 4 :(得分:1)

最后,我们使用了cflib.org中的Query2Excel函数,并对其进行了微调,以满足我们的特定需求。

答案 5 :(得分:0)

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