在ColdFusion应用程序中,我需要让用户将电子表格保存到他们的硬盘上。
我已经能够通过构建XML或HTML表格,并应用“application/vnd.ms-excel” MIME类型,以及使用“.xls”扩展名来实时生成文件。
但是,当用户加载这样的文件时,他们总是会收到一个烦人的消息(由于Excel的扩展硬化功能):
我了解
如何生成 Excel 文件并提示下载,而不必先将其写入文件?
我已经能够通过构建XML或HTML表格,并应用“application/vnd.ms-excel” MIME类型,以及使用“.xls”扩展名来实时生成文件。
<cfheader name="Content-Disposition" value="attachment; filename=MySpreadsheet.xls">
<cfcontent type="application/vnd.ms-excel">
但是,当用户加载这样的文件时,他们总是会收到一个烦人的消息(由于Excel的扩展硬化功能):
我希望避免这个消息。您正在尝试打开的文件“_____.xls”与文件扩展名指定的格式不同。在打开文件之前,请验证该文件未损坏并来自可信任的来源。您现在要打开该文件吗?
我了解
<cfspreadsheet>
标签和 SpreadsheetWrite()
函数将生成一个正确的 Excel 文件,不显示此消息 - 但它们都需要一个参数,指示服务器上要写入文件的位置。因为下载可能包含敏感信息,并且因为一旦文件被写入服务器,我就无法轻松地强制执行安全性,所以我不想创建这样的文件 - 即使是暂时的。(我知道我可以提供密码,但在生成 Excel 文件后将用于业务流程的上下文中,这不是理想的解决方案。)如何生成 Excel 文件并提示下载,而不必先将其写入文件?