我有一个网页链接到一个Excel 2007工作表,是一个 .xls
格式的文件而不是 .xlsx
文件。当我点击链接时,出现通常的对话框,可以选择打开或保存Excel文件。在点击“打开”后,会出现以下警告消息:
您正在尝试打开的文件 'filename.xls' 的格式与文件扩展名指定的格式不同。在打开文件之前,请验证该文件未损坏并来自可信任的来源。是否要立即打开文件?
我能否通过编程方式抑制此警告消息(即隐藏它或防止其出现)?我正在使用 ColdFusion 进行 Web 开发。
我有一个网页链接到一个Excel 2007工作表,是一个 .xls
格式的文件而不是 .xlsx
文件。当我点击链接时,出现通常的对话框,可以选择打开或保存Excel文件。在点击“打开”后,会出现以下警告消息:
您正在尝试打开的文件 'filename.xls' 的格式与文件扩展名指定的格式不同。在打开文件之前,请验证该文件未损坏并来自可信任的来源。是否要立即打开文件?
我能否通过编程方式抑制此警告消息(即隐藏它或防止其出现)?我正在使用 ColdFusion 进行 Web 开发。
如果您不想寻找解决方案,只是想解决问题,请将以下密钥插入您的注册表以禁止通知:
[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security] “ExtensionHardening”=dword:00000000
您可以通过以下步骤完成上述操作:
这个问题是由一个名为“扩展硬化”的功能所导致的,您可以在这里找到更多相关信息。
我在我的项目中经常遇到这个问题,像Jon说的那样,关闭扩展硬化是每个客户端用户都必须要做的事情。
不幸的是,上面的链接还指出,直到至少Office 14,这段代码不会有任何预期的变化。
假设您使用以下语法创建电子表格对象:
<cfset sheet = SpreadsheetNew() />
<cfheader name="content-disposition" value="attachment;filename=my_spreadsheet.xls">
<cfcontent type="application/vnd.ms-excel" variable="#spreadsheetReadBinary(sheet)#" reset="true">
使用以下语法创建您的电子表格对象:
<cfset sheet = SpreadsheetNew("", "true") />
使用以下代码创建下载链接:
<cfheader name="content-disposition" value="attachment;filename=my_xml_spreadsheet.xlsx">
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#spreadsheetReadBinary(sheet)#" reset="true">
感谢Raymond Camden提供的大部分内容(他的示例是用于创建旧格式的电子表格 - 我更新了新格式并使用略有不同的MIME值)。
<cfheader name="Content-Disposition" value="attachment;filename=myexcelfile.xls">
<cfcontent type="application/ms-excel" reset="true">
我不相信你可以从用户那里隐藏它。这些警告是外部于你的浏览器。
我曾经遇到过同样的问题,客户也对此进行了抱怨。我进行了大量的谷歌搜索,但没有找到解决方法。最终,我使用cfspreadsheet创建了电子表格,我知道这需要比直接通过HTML创建更多的工作,但它可以消除警告。