使用ColdFusion创建XLS文件

时间:2013-07-22 11:56:42

标签: coldfusion coldfusion-8

我正在尝试使用Adobe ColdFusion创建电子表格(.XLS文件) - 8。 创建电子表格的代码是:

<cfsetting enablecfoutputonly="Yes">
<cfset date_from = "#URL.date_from#">
<cfset date_to = "#URL.date_to#">
<cfset query_id="#URL.queryID#">
<cfquery name="GetEmps" datasource="cfdocexamples">
 <!--- My SQL Queries Goes Here--->
</cfquery>

<cfcontent type="application/msexcel">
<cfheader name="Content-Disposition" value="filename=Employees.xls">
<cfoutput>
    <table cols="4">
        <cfloop query="getData">
            <tr>
                <td>#uid#</td>
                <td>#week#</td>
                <td>#book_count#</td>
            </tr>
        </cfloop>
    </table>
</cfoutput>

每当我运行页面时,都会创建一个XLS表,但我找不到任何数据。创建的XLS文件的大小为0.

请注意:查询是正确的(因为当我将输出打印为html时,我可以看到没有任何错误/警告的表格。)

**阅读评论后:UPD **:

我已更新了我的代码,现在只包含重要的代码段。

UPD 2

每当我评论行<cfsetting enablecfoutputonly="Yes">时,都会使用预期数据创建xls文件。但是,当我打开生成的文件时,会出现一个对话框: enter image description here

请注意,生成的电子表格非常完美。只有困扰我的是上面的警告。 另请注意:每当我尝试在google-docs中打开电子表格作为预览时,由于格式损坏,无法打开该文件。

但是,我可以在MS-Excel中完美打开它。

即使将内容类型更改为:<cfcontent type="application/vnd.msexcel">,我也会收到同样的警告。

1 个答案:

答案 0 :(得分:2)

虽然我不能确切地说明如何实现这一点,但我知道组织内的开发人员使用Apache POI解决了这个问题。它似乎为他们做了伎俩。它必须通过Coldfusion完成Java。 Here就是一个例子。