如何强制下载生成的Excel文件并仍然保存副本?

时间:2016-10-27 21:34:28

标签: coldfusion

我有一个基于此的代码:

https://helpx.adobe.com/coldfusion/cfml-reference/coldfusion-functions/functions-s/spreadsheetaddrows.html

它当前生成一个Excel文件,将其保存在服务器上,然后提供指向excel文件的链接。

以下是 report.cfm 的当前代码:

<cfset todayDate = Now()> 
<cfscript>
       // Get data from a query
       Applicants=QueryExecute("

            SELECT *
            FROM dbo.applicants
            ORDER BY lastname ASC

                               ",[],{datasource="DATABASE"});
       // Create a spreadsheet object with sheetname
       spObj=spreadsheetNew("Applicants",true);
       // Add rows with data from query result. The data start from row 1, col 1. The spreadsheet
       // will have column names.
       spreadsheetAddrows(spObj,Applicants,1,1,true,[""],true);
       dirName=GetDirectoryFromPath(GetCurrentTemplatePath());
       // Write spreadsheet to a file
       SpreadsheetWrite(spObj,"#dirName##dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Applicants.xlsx",true);
       //SpreadsheetWrite(spObj,"#dirName##DateFormat(todayDate, "yyyymmdd")#_Applicants.xlsx",true);
</cfscript>
<cfoutput>
    <a href="#dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Applicants.xlsx">Click to download your Excel File</a>
</cfoutput>

如何更改,以便当用户点击 report.cfm 的链接时,它不会显示&#34;点击下载您的Excel文件&#34; 不再,但会自动触发下载并保留生成的Excel文件的副本吗?

随访:

我提供了一个指向用户的链接 - &#34;生成去年的报告&#34; 这链接到report.cfm,它现在正生成excel文件并向其显示下载链接。

他们不想要额外的点击,所以我正在寻找一个页面自动下载文件的解决方案。

根据Bernhard的建议,我将我的代码修改为

<cfscript>
   - original script -
</cfscript>
<cfheader name="Content-Disposition" value="attachment; filename=#dateformat(todayDate, "yyyymmdd")#_#TimeFormat(todayDate, "HHmmss")#_Year2013GradApps.xlsx">
<cfcontent type="application/vnd.msexcel">

我可以强制下载,但Excel无法打开文件&#34;因为文件格式或文件扩展名无效。&#34;

0 个答案:

没有答案