从ColdFusion页面导出文件到Excel出错?

时间:2016-08-09 03:40:19

标签: excel coldfusion

下面的代码段用于下载文件,扩展名为xls。导出后,下载的文件不会在Excel 2013或以前的版本中打开,也不会在Office 365中打开,直到我从其属性中取消阻止该文件。它仅在MS Excel 2016中打开。有些人可以帮我解决这个问题以及如何在默认情况下在“受保护的视图”中打开它吗?

实际上昨天我遇到了这个问题。没有HTML标签,它会正确导出。如果我添加HTML标记,则会导致问题。

<cfheader name="Content-Disposition" value="attachment; filename=xyz.xls">
<cfcontent type="application/vnd.ms-excel">
<cfoutput> <table border='1'> <tr> <td>123</td> <td>456</td> <td>789</td></tr> </table> </cfoutput>

1 个答案:

答案 0 :(得分:2)

正如cyboashu所提到的,M $办公室安全协议有一些变化,你无法在Excel中打开带有XLS(X)扩展名的HTML文件。 我们的应用程序遇到了同样的问题,不得不使用ColdFusion Spreadsheet函数。 (这实际上非常酷。Documentation on them is on the Adobe-site。)

我建议使用以下代码:

<cfset xlsSheet = spreadsheetNew("xyz.xls","no")>
<cfset spreadsheetAddRow(xlsSheet,"123,456,789")>
<cfset spreadsheetWrite(xlsSheet,"xyz.xls",true)>
<cfheader name="Content-Disposition" value="attachment; filename=xyz.xls">
<cfcontent type="application/vnd.ms-excel">

顺便说一句,您还可以尝试Ben Nadel制作的自定义标签。这是GIT的link。设置起来有点复杂,但您可以使用它来制作所有您想要的Excel文件。